题解 | #公共子串计算#
公共子串计算
http://www.nowcoder.com/practice/98dc82c094e043ccb7e0570e5342dd1b
Java
用两个下标分别跟踪两个字符串的对应字符,遇到相等的,继续,否则跳出,跟踪下标重新赋值
这个题最大的印象就是跟踪下标的赋值千万不能放错位置!我就是放错了位置错了好几次
import java.util.*; public class Main { public static void main(String[] args){ Scanner scanner = new Scanner(System.in); String str1 = scanner.next(); String str2 = scanner.next(); char[] chars1 = str1.toCharArray(); char[] chars2 = str2.toCharArray(); int result = 0; int temp1, temp2, time; for (int i = 0; i < chars1.length; i++) { for (int j = 0; j < chars2.length; j++) { temp1 = i; temp2 = j; time = 0; while (temp2 < chars2.length && temp1 < chars1.length){ if (chars1[temp1] == chars2[temp2]) { temp1++; time++; temp2++; } else { break; } } if (result < time) { result = time; } } } System.out.print(result); } }