String find_lcss(String s1, String s2) {
if (s1 == null || s2 == null) {
return "";
}
int[][] table = new int[s1.length()][s2.length()];
int maxLen = 0;
int end_index = 0;
for (int i = 0; i < s1.length(); i++) {
for (int j = 0; j < s2.length(); j++) {
if (s1.charAt(i) != s2.charAt(j)) {
table[i][j] = 0;
} else {
if (i == 0 || j == 0) {
table[i][j] = 1;
} else {
table[i][j] = table[i - 1][j - 1] + 1;
}
}
if (maxLen < table[i][j]) {
maxLen = table[i][j];
end_index = i;
}
}
}
StringBuilder res = new StringBuilder();
for (int i = end_index + 1 - maxLen; i <= end_index ; i++) {
res.append(s1.charAt(i));
}
return res.toString();
//System.out.println(end_index);
}
if (s1 == null || s2 == null) {
return "";
}
int[][] table = new int[s1.length()][s2.length()];
int maxLen = 0;
int end_index = 0;
for (int i = 0; i < s1.length(); i++) {
for (int j = 0; j < s2.length(); j++) {
if (s1.charAt(i) != s2.charAt(j)) {
table[i][j] = 0;
} else {
if (i == 0 || j == 0) {
table[i][j] = 1;
} else {
table[i][j] = table[i - 1][j - 1] + 1;
}
}
if (maxLen < table[i][j]) {
maxLen = table[i][j];
end_index = i;
}
}
}
StringBuilder res = new StringBuilder();
for (int i = end_index + 1 - maxLen; i <= end_index ; i++) {
res.append(s1.charAt(i));
}
return res.toString();
//System.out.println(end_index);
}
No comments:
Post a Comment