本帖最后由 michael_wlq 于 2015-9-14 19:42 编辑
获取两个字符串中最大相同子串:
例如字符串"abcwerthelloyuiodef"和 "cvhellobnm"
思路: 1.将短的那个子串按照长度递减的方式获取到;
2. 将每获取到的子串去长串中判断是否包含,如果包含,则找到最长子串。
实现示例
- public class StringTest4 {
- public static String getMaxSubString(String s1, String s2) {
- String max = "", min = "";
- max = (s1.length() > s2.length()) ? s1 : s2;
- min = (max == s1) ? s2 : s1;
- for (int x = 0; x < min.length(); x++) {
- for (int y = 0, z = min.length() - x; z != min.length() + 1; y++, z++) {
- String temp = min.substring(y, z);
- //sop(temp);
- if (max.contains(temp))// 等价于if(s1.indexOf(temp)!=-1)
- return temp;
- }
- }
- return "";
- }
- public static void main(String[] args) {
- String s1 = "cvhellobnm";
- String s2 = "abcwerthelloyuiodef";
- sop(getMaxSubString(s2, s1));
- }
- public static void sop(String str) {
- System.out.println(str);
- }
- }
复制代码
|
|