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 stub
int 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;
}
}