두 개의 문자열을 받는 JavaScript 함수를 작성해야 합니다. str1과 str2라고 합시다. 그런 다음 함수는 두 입력 문자열에 공통인 가장 긴 연속 문자열을 찾아 해당 공통 문자열을 반환해야 합니다.
예:
입력 문자열이 -
인 경우const str1 = 'ABABC'; const str2 = 'BABCA';
그런 다음 출력 문자열은 -
여야 합니다.const output = 'BABC';
예시
다음은 코드입니다 -
const str1 = 'ABABC'; const str2 = 'BABCA'; const findCommon = (str1 = '', str2 = '') => { const s1 = [...str1]; const s2 = [...str2]; const arr = Array(s2.length + 1).fill(null).map(() => { return Array(s1.length + 1).fill(null); }); for (let j = 0; j <= s1.length; j += 1) { arr[0][j] = 0; } for (let i = 0; i <= s2.length; i += 1) { arr[i][0] = 0; } let len = 0; let col = 0; let row = 0; for (let i = 1; i <= s2.length; i += 1) { for (let j = 1; j <= s1.length; j += 1) { if (s1[j - 1] === s2[i - 1]) { arr[i][j] = arr[i - 1][j - 1] + 1; } else { arr[i][j] = 0; } if (arr[i][j] > len) { len = arr[i][j]; col = j; row = i; } } } if (len === 0) { return ''; } let res = ''; while (arr[row][col] > 0) { res = s1[col - 1] + res; row -= 1; col -= 1; } return res; }; console.log(findCommon(str1, str2));
출력
다음은 콘솔의 출력입니다 -
BABC