当前位置:   article > 正文

华为OJ——查找两个字符串a,b中的最长公共子串_查找两个字符串a,b中的最长公共子串。若有多个,输出在较短串中最先出现的那个。

查找两个字符串a,b中的最长公共子串。若有多个,输出在较短串中最先出现的那个。

题目描述

查找两个字符串a,b中的最长公共子串。若有多个,输出在较短串中最先出现的那个。 
输入描述:
输入两个字符串
输出描述:
返回重复出现的字符
输入例子:
abcdefghijklmnop
abcsafjklmnopqrstuvw
输出例子:
jklmnop
方法一:

  1. import java.util.*;
  2. public class Main{
  3. public static void main(String[] args) {
  4. Scanner scan=new Scanner(System.in);
  5. while(scan.hasNext())
  6. {
  7. String str1=scan.nextLine();
  8. String str2=scan.nextLine();
  9. int maxLength=0;//记录最长共同字符串的长度
  10. String maxStr="";//记录最长共同字符串
  11. //默认第一个字符串为短字符串,如果第二个更短,则交换两个字符串的位置,把第一个变成短的,第二个变成长的
  12. if(str1.length()>str2.length()){
  13. String temp=str2;
  14. str2=str1;
  15. str1=temp;
  16. }
  17. //从最长长度开始,依次递减查看有没有共同的
  18. for(int i=0;i<str1.length()-1;i++){
  19. String str=Give(str1.substring(i),str2);
  20. if(str.length()>maxLength && str!="a"){
  21. maxStr=str;
  22. maxLength=str.length();
  23. }
  24. }
  25. System.out.println(maxStr);
  26. }
  27. }
  28. //输入两个字符串,返回最长的公共部分
  29. static String Give(String str1,String str2)
  30. {
  31. String subStr="";
  32. for(int j=str1.length()-1;j>0;j--){
  33. subStr=str1.substring(0,j+1);
  34. if(str2.contains(subStr)){
  35. return subStr;
  36. }
  37. }
  38. return "";
  39. }
  40. }
方法二:

  1. import java.util.*;
  2. public class Main{
  3. public static void main(String[] args){
  4. Scanner in = new Scanner(System.in);
  5. while(in.hasNext()){
  6. String s1 = in.nextLine();
  7. String s2 = in.nextLine();
  8. String max = s1.length() >= s2.length()?s1:s2;
  9. String min = s1.length() >= s2.length()?s2:s1;
  10. int l = 0;
  11. String s ="";
  12. for(int i=0;i<min.length();i++){
  13. for(int j=i+1;j<=min.length();j++){
  14. if(max.contains(min.substring(i,j)) && j-i>l){
  15. l=j-i;
  16. s=min.substring(i,j);
  17. }
  18. }
  19. }
  20. System.out.println(s);
  21. }
  22. }
  23. }






声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/987486
推荐阅读
相关标签
  

闽ICP备14008679号