题解 | #公共子串计算#
公共子串计算
https://www.nowcoder.com/practice/98dc82c094e043ccb7e0570e5342dd1b
import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); String s1 = in.next(); String s2 = in.next(); int maxLen = 0; int ii = 0; //此循环决定 字符串1 开始的字符 for(int i=0; i<s1.length(); i++){ int tempLen = 0; char c = s1.charAt(i); int jj = 0; //以字符串1指定字符为起点,遍历字符串2找匹配最大值 for(int j=0; j<s2.length(); j++){ char cc = s2.charAt(j); if(c == cc){ tempLen++; int iii = i; int jjj = j; while(iii+1<s1.length() && jjj+1<s2.length() && s1.charAt(iii + 1) == s2.charAt(jjj + 1)){ tempLen++; iii++; jjj++; } if(maxLen<tempLen){ maxLen = tempLen; } tempLen = 0; } } } System.out.print(maxLen); } }
遍历即可,无需动态规划