给出两个字符串,找到最长公共子串,并返回其长度,java实现

来源:互联网 发布:数据体现不出邓肯作用 编辑:程序博客网 时间:2024/06/12 01:41
给出两个字符串,找到最长公共子串,并返回其长度。您在真实的面试中是否遇到过这个题? Yes样例给出A=“ABCD”,B=“CBCE”,返回 2注意子串的字符应该连续的出现在原字符串中,这与子序列有所不同。
package largest_common_substring_1;import java.util.Vector;public class Main {public static void main(String[] args) {// TODO Auto-generated method stubString A = "ABCD";String B = "CBCE";System.out.println(largest(A, B));}public static int largest(String A, String B) {int n = A.length();int m = B.length();int num = 0;int[][] dp = new int[n + 1][m + 1]; // ///不赋值时的初始值为0for (int i = 1; i <= n; i++) {char c1 = A.charAt(i - 1);for (int j = 1; j <= m; j++) {char c2 = B.charAt(j - 1);if (c1 == c2) {dp[i][j] = dp[i - 1][j - 1] + 1;} else {dp[i][j] = 0;}num = Math.max(num, dp[i][j]);}//return num;  /////for循环结束后才return}return num;}///largest}
2
1 0
原创粉丝点击