[LeetCode] 522. Longest Uncommon Subsequence II

Chobby·2026년 3월 20일

LeetCode

목록 보기
1040/1045

😎풀이

  1. 부모 문자열의 다른 문자열의 subsequence라면, 자식 문자열은 볼 필요도 없이 subsequence 이므로 부모만 검사
    1-1. str[i]str[j]로 모든 쌍을 검사하며, 다른 문자열 모두에 subsequence가 아닌 부모 문자열 탐색
    1-2. 최대 길이 갱신
  2. 가장 긴 고유 부분 문자열의 길이 반환
function findLUSlength(strs: string[]): number {
    const n = strs.length
    let longest = -1
    for (let i = 0; i < n; i++) {
        const str1 = strs[i]
        let isUncommon = true
        for (let j = 0; j < n; j++) {
            if (i === j) continue
            const str2 = strs[j]
            let str1Idx = 0
            let str2Idx = 0
            while (str1Idx < str1.length && str2Idx < str2.length) {
                if (str1[str1Idx] === str2[str2Idx]) {
                    str1Idx++
                }
                str2Idx++
            }
            if (str1Idx === str1.length) {
                isUncommon = false
                break
            }
        }
        if (isUncommon) {
            longest = Math.max(longest, str1.length)
        }
    }

    return longest
}
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글