两个字符串
String s1="i am a good guy"
String s2 ="he is  good "想找出两个字符串中相同度最大的字符串,如上文的 good    我的思路是把s1 分成所有可以分成的子串,然后s2.indexOf(subStr)  >-1  看s2 中有没有这个子串,然后再挑选子串最长的
可是如果两个字符串是两篇文章,假如仍用此法的话,会不会很耗内存()有什么其他思路?

解决方案 »

  1.   

    可以在将s1分成子串,按字符串长度先排个序,然后第一个indexOf的就是最长的
      

  2.   

    保存在HashSet中,然后用contains函数,可能要快一点吧!
      

  3.   


    将字符串1用“”空格截取成数组,然后用循环在字符串二中用indexOf查找String s1="i am a good guy";
    String s2 ="he is good ";
    String[] ary = s1.split(" ");
    for (int i = 0; i < ary.length; i++) {
         if (s2.indexOf(ary[i]) != -1) {
              System.out.println("找到了:" + ary[i]);
         }
    }