1143. 가장 긴 공통 부분 수열(자바스크립트 솔루션)
4836 단어 algorithmsjavascript
설명:
두 개의 문자열 text1과 text2가 주어지면 가장 긴 공통 부분 시퀀스의 길이를 반환합니다. 공통 부분 수열이 없으면 0을 반환합니다.
문자열의 하위 시퀀스는 나머지 문자의 상대적 순서를 변경하지 않고 일부 문자(없을 수 있음)가 삭제된 원래 문자열에서 생성된 새 문자열입니다.
예를 들어 "ace"는 "abcde"의 하위 시퀀스입니다.
두 문자열의 공통 하위 시퀀스는 두 문자열에 공통인 하위 시퀀스입니다.
해결책:
시간 복잡도 : O(n^2)
공간 복잡도: O(n^2)
var longestCommonSubsequence = function(text1, text2) {
// Create dp table
const dp = Array(text1.length+1).fill(0).map(() => Array(text2.length+1).fill(0))
for(let i = 1; i < dp.length; i++) {
for(let j = 1; j < dp[i].length; j++) {
// If the letters match, look diagonally to get the max subsequence before this letter and add one
if(text1[i-1]===text2[j-1]){
dp[i][j] = dp[i-1][j-1] + 1
} else {
// If there is no match, set the cell to the previous current longest subsequence
dp[i][j] = Math.max(dp[i][j-1], dp[i-1][j])
}
}
}
return dp[text1.length][text2.length]
};
Reference
이 문제에 관하여(1143. 가장 긴 공통 부분 수열(자바스크립트 솔루션)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/cod3pineapple/1143-longest-common-subsequence-javascript-solution-5bgp텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)