me

텍스트 교집합 – 하이라이트에서 사용

function intersection(str1, str2) {
    let maxLength = 0;
    let endIndex = 0;
    let dp = Array.from({ length: str1.length + 1 }, () => Array(str2.length + 1).fill(0));

    for (let i = 1; i <= str1.length; i++) {
        for (let j = 1; j <= str2.length; j++) {
            if (str1[i - 1] === str2[j - 1]) {
                dp[i][j] = dp[i - 1][j - 1] + 1;
                if (dp[i][j] > maxLength) {
                    maxLength = dp[i][j];
                    endIndex = i;
                }
            }
        }
    }

	return maxLength === 0 ? "" : str1.substring(endIndex - maxLength, endIndex);
}

두 문자열 str1과 str2 사이의 가장 긴 공통 부분 문자열을 찾는 알고리즘

dp[i][j]는 str1의 첫 번째 문자부터 i번째 문자까지와 str2의 첫 번째 문자부터 j번째 문자까지의 가장 긴 공통 부분 문자열의 길이를 저장

검색어 하이라이트 처리할 때 유용하게 활용

<li>Select the control items to display, and press <span class=”MMI”>Done</span>.</li>

이런 식으로 중간에 분리된 태그가 있는 텍스트에서
내가 “control items to display, and press do” 로 하이라이트 주고 싶을 때 사용 가능.