import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashSet;
import java.util.Set;
public class LCS {
int C[][];
int B[][];
@SuppressWarnings({ "unchecked", "rawtypes" })
Set<String> LCS_SET = new HashSet(); //使用集合去重
public int LCSLength(char X[], char Y[]) { //返回公共子序列长度
int m = X.length;
int n = Y.length;
C = new int[X.length][Y.length];
B = new int[X.length][Y.length];
for (int i = 0; i < m; i++) {
C[i][0] = 0;
B[i][0] = 0;
}
for (int j = 0; j < n; j++) {
C[0][j] = 0;
B[0][j] = 0;
}
for (int i = 1; i < m; i++) {
for (int j = 1; j < n; j++) {
if (X[i] == Y[j]) {
C[i][j] = C[i - 1][j - 1] + 1;
B[i][j] = 1;
} else if (C[i - 1][j] > C[i][j - 1]) {
本内容试读结束,登录后可阅读更多
下载后可阅读完整内容,剩余3页未读,立即下载