A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. public class StringTest2 {
  2.         public static void main(String[] args){
  3.                 String s1 = "qwerabcdtyuiop";
  4.                 String s2 = "xcabcdvbn";
  5.                 String s =  getMaxSubstring(s1, s2);
  6.                 System.out.println("s = " + s);
  7.         }
  8.         public static String getMaxSubstring(String s1, String s2){
  9.                 String max = null, min = null;
  10.                 //max存入较长的字符串,min存入较短的字符串
  11.                 max = (s1.length() > s2.length())? s1:s2;
  12.                 min = max.equals(s1)? s2:s1;
  13.                 //将短的字符串依长度递减,每次递减都判断max中是否包含该长度的各种字串组合(通过a++,b++实现)。               
  14.                 for(int i = 0; i < min.length(); i ++){
  15.                         //a代表子串的开始位置,b代表子串的结束位置。
  16.                         for(int a = 0, b = min.length()-i; b != min.length()+1; a++,b++){
  17.                                 String sub = min.substring(a,b); //获得子串
  18.                                 if (max.contains(sub)) //判断max中是否包含子串
  19.                                         return sub;
  20.                         }
  21.                 }
  22.                 return null;
  23.         }
  24. }
复制代码


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马