데이터 구조 와 알고리즘 자바 버 전 - LCS 최 장 서브 시퀀스
5742 단어 데이터 구조 및 알고리즘 자바자바알고리즘LCS
public class LCS {
/**
*
* @param a
* @param b
* @return
*/
public int getLCSLength(String a, String b) {
/**
* row ,line
*/
int line = a.length();
int row = b.length();
/**
* A B
*/
char[] A = a.toCharArray();
char[] B = b.toCharArray();
// 0,
int[][] dp = new int[line + 1][row + 1];
// , 0
for (int i = 0; i < dp[0].length; i++) {
dp[0][i] = 0;
}
for (int i = 0; i < dp.length; i++) {
dp[i][0] = 0;
}
for (int m = 1; m < line + 1; m++) {
for (int n = 1; n < row + 1; n++) {
if (A[m - 1] == B[n - 1]) {
//
dp[m][n] = dp[m - 1][n - 1] + 1;
} else {
//
dp[m][n] = Math.max(dp[m - 1][n], dp[m][n - 1]);
}
}
}
for (int i = 0; i < line; i++) {
for (int j = 0; j < row; j++) {
System.out.print(dp[i][j] + " ");
}
System.out.println();
}
//
printLCS(line - 1, row - 1, A, B, dp);
return dp[line - 1][row - 1];
}
/**
*
* @param i
* @param j
* @param A
* @param dp
*/
public void printLCS(int i, int j, char[] s1, char[] s2, int[][] dp) {
LinkedList
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【eclipse】같은 파일을 2개 열고 싶다【에디터의 분할】「이런 것은 다른 클래스로 나누어야 한다!」라든지 있다고는 생각합니다만. 실제로 실무 속에서 프로그램을 쓰고 있으면, 이런 소스에 눈에 걸리는 일도 적지 않을까···. 그건 그렇고, 내 노트북에서 이렇게 보입니다 네...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.