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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

写一个方法,要求能获取2个字符串的所有的最大相同子串,返回一个集合
例如:sop(getMaxSubString("daccedbccfuhcfedjjfjba","dabccfedfjba"));
运行结果为:[bccf, cfed, fjba];

  1. public static ArrayList<String> getMaxSubString(String str1,String str2)//获取两个字符串中所有最大相同子串。
  2.     {
  3.         String minstr,maxstr;
  4.         ArrayList<String> result=new ArrayList<String>();
  5.         boolean flag=true;
  6.         maxstr=(str1.length()>str2.length())?str1:str2;
  7.         minstr=(maxstr==str1)?str2:str1;
  8.         for(int i=1;i<=minstr.length()&&flag==true;i++){
  9.             for(int start=0,end=minstr.length()-i;end!=minstr.length();start++,end++){
  10.                 String temp=minstr.substring(start,end+1);
  11.                 if(maxstr.contains(temp)){
  12.                     result.add(temp);
  13.                     flag=false;
  14.                 }
  15.             }
  16.         }
  17.         return result;
  18.     }
复制代码

0 个回复

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