阿里巴巴2014.08.29校园招聘笔试题---找出两个字符串中连续相同的最大子串

来源:互联网 发布:java迭代器怎么使用 编辑:程序博客网 时间:2024/05/01 02:01
package interview;/** * 原题: * 给定一个query和一个test,均由小写字母组成。 * 要求:在test中找出以同样的顺序连续出现在query中的最长连续字母序列的长度。 * 例如: * query:acbac * test:acaccbabb * 那么test中的“cba”为最长的连续出现在query中的字母序列,因此, * 返回结果应该为其长度3. * 请注意程序效率 */import java.util.ArrayList;import java.util.Iterator;import java.util.Scanner;public class FindMaxString {public static void main(String[] args) {Scanner in = new Scanner(System.in);String str1 = in.nextLine();String str2 = in.nextLine();System.out.println(find(str1,str2));}private static int find(String str1, String str2) {// TODO Auto-generated method stubint maxSize = 0;ArrayList list = new ArrayList();for (int i = 0; i < str1.length(); i++) {for (int j = i+1; j < str1.length(); j++) {String sub = str1.substring(i,j);if (str2.contains(sub)) {list.add(sub);}}}Iterator it = list.iterator();while (it.hasNext()) {String string = (String) it.next();if (string.length()>maxSize) {maxSize = string.length();}}return maxSize;}}

0 0
原创粉丝点击