[LeetCode] 3090. Maximum Length Substring With Two Occurrences

Chobby·2025년 12월 19일

LeetCode

목록 보기
852/873

😎풀이

  1. s 2중 순회
    1-1. 각 시작점에서 문자 빈도 측정
    1-2. 한 문자가 3번째 탐색되는 경우 추가 탐색 종료 후 현재 길이 반환
    1-3. 현재 길이를 바탕으로 최대 길이 갱신
  2. 같은 문자가 3회 이상 중복되지 않는 부분 문자열의 최대 길이 반환
function maximumLengthSubstring(s: string): number {
    let maxLen = 0
    for(let left = 0; left < s.length; left++) {
        const frequent = new Map()
        let len = 0
        for(let right = left; right < s.length; right++) {
            const cur = s[right]
            const curFrequent = frequent.get(cur) ?? 0
            if(frequent.has(cur) && curFrequent >= 2) {
                break
            }
            len++
            frequent.set(cur, curFrequent + 1)
        }
        maxLen = Math.max(maxLen, len)
    }

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

0개의 댓글