String 两个字符串中最大相同子串

 3,两个字符串中最大相同子串
 思路:
 1,既然去的是最大子串,先看短的那个字符串是否在长的字符串中
 2,如果存在,短的那个就是最大子串。
 3,如果不是,就将短的那个子串进行长度递减的方式去子串,去长的中判断是否存在
 如果找到就不用找了

 1 public class StringTest_2 {
 2 
 3     /**
 4      * @param args
 5      */
 6     public static void main(String[] args) {
 7         String s1="bnjfoiaahfkkaiaemmaqqihg";
 8         String s2="kkllfjhaf";
 9         String s=getMaxSubstring(s1,s2);
10         System.out.println("s="+s);
11     }
12 
13     public static String getMaxSubstring(String s1, String s2) {
14         
15         String max=null,min=null;
16         max=(s1.length()>s2.length())?s1:s2;//确认字符串的长度    
17         min=max.equals(s1)?s2:s1;
18         
19         for(int x=0;x<min.length();x++){
20             for(int a=0, b=min.length()-x;b!=min.length()+1;a++,b++){
21                 String str=min.substring(a, b);  //把字符串渐渐的变短
22                 if(max.contains(str)){
23                     return str;
24                 }
25             }
26         }
View Code

 

posted on 2013-11-21 21:34  ざ柒  阅读(377)  评论(0编辑  收藏  举报