Published:
Updated:

  • Reference
  • ๋„ˆ๋ฌด ์–ด๋ ต๋‹ค.


Solution

import collections


class Solution:
    def lengthOfLongestSubstring(self, s: str) -> int:
        used_map = collections.defaultdict(int)
        start = max_len = 0

        INDEX_PLUS = 1
        for i, c in enumerate(s):
            if c in used_map and start <= used_map[c]:
                start = used_map[c] + INDEX_PLUS
            else:
                max_len = max(max_len, i - start + INDEX_PLUS)

            used_map[c] = i

        return max_len


Failed Solution

import collections


class Solution:
    def lengthOfLongestSubstring(self, s: str) -> int:
        answer = []
        check_map = collections.defaultdict(int)

        lt, rt = 0, 1
        check_map[s[lt]] = 1
        tmp = s[lt]
        while lt < rt < len(s):
            if s[rt] not in check_map:
                check_map[s[rt]] = 1
                tmp += s[rt]
                rt += 1
                continue

            answer.append(tmp)
            check_map.clear()
            lt += 1
            rt = lt + 1
            check_map[s[lt]] = 1
            tmp = s[lt]

        answer.sort(key=len)
        print(answer)
        return len(answer[-1])

Leave a comment