[阿里2015校招笔试]求字符串query和text最长连续字母序列的长度
2014-08-29 22:11
309 查看
直接上代码
/** * 求字符串query和text最长连续字母序列的长度 原理: 1.以query.length()和text.length()组成矩阵martix; * 2.矩阵martix[i][j]对应的字符相同,则该节点赋值为1; 3.若当前字符相同节点的值 martix[i][j]= * martix[i-1][j-1] +1,则当前节点的值就是最大公用子串的长度; * * @param query * @param text * @return */ public static int getLCSLen(String query, String text) { if (query == null || text == null) { return 0; } else if (query.equals(text)) { return query.length(); } int length = 0; int end = 0;// 可以用来求最长公共子序列,这里未用到 int[][] martix = new int[query.length()][text.length()]; for (int i = 0; i < query.length(); i++) { for (int j = 0; j < text.length(); j++) { int n = (i - 1 >= 0 && j - 1 >= 0) ? martix[i - 1][j - 1] : 0; martix[i][j] = query.charAt(i) == text.charAt(j) ? 1 + n : 0; if (martix[i][j] > length) { length = martix[i][j]; end = i; } } } return length; }
相关文章推荐
- 2014年阿里研发笔试题:在text中找出以同样的顺序连续出现在query中的最长连续字母序列的长度
- 阿里14年机试-----在text中找出以同样的顺序连续出现在query中的最长连续字母序列的长度
- 最长连续字母序列的长度(阿里2015在线研发工程师笔试题)
- 在text中找出以同样的顺序连续出现在query中的最长连续字母序列的长度
- Java字符串编程--最长连续字母序列的长度
- ALBB 找公共最长连续字母序列的长度
- 最长连续字母序列的长度
- 求两个字符串公共子序列的最大长度(参考阿里巴巴2015研发笔试)(简单)
- ALBB 找公共最长连续字母序列的长度
- 2015年阿里在线笔试题:求两个字符串的最大公共子序列长度的C语言解法
- 阿里算法工程师校招面试之-找最长的连续递增子数组的长度
- 【校招笔试面试之字符串处理】在字符串中找出连续最长的数字串。
- 求最长连续相同的字母序列长度
- 在字符串中找出连续最长的数字串并以参数形式返回,并把这个串的长度返回
- 阿里2014校招笔试题(南大)——利用thread和sleep生成字符串的伪随机序列
- 在字符串中找出连续最长的数字串,并把这个串的长度返回
- 给定一个长度为N的数组,找出一个最长的单调自增子序列(不一定连续,但是顺序不能乱).
- 阿里2014校招笔试题(南大)——利用thread和sleep生成字符串的伪随机序列
- 用递归算法写一个函数,求字符串最长连续字符的长度,比如aaaabbcc的长度为4,aabb的长度为2,ab的长度为1。
- 微软面试之25 在字符串中找出连续最长的数字串,并把这个串的长度返回,