3. Longest Substring Without Repeating Characters

LONGNEW·2023년 6월 30일
0

CP

목록 보기
110/155

https://leetcode.com/problems/longest-substring-without-repeating-characters/description/?envType=featured-list&envId=top-google-questions

input :

  • s

output :

  • 문자의 반복이 없는 가장 긴 문자열의 길이를 출력하시오.

조건 :

  • s는 영어 알파벳, 숫자, 기호, 공백으로 이루어짐.

Solution explain : Solution1

idea


주의

  • s를 이루는 것이 공백, 문자, 기호 이므로 ASCII로 이를 찾아서 하지 말고 item = s[end]해서 값을 가져 왔을 떄 초기화 하는 것을 추천한다.
class Solution:
    def lengthOfLongestSubstring(self, s: str) -> int:
        alpha = dict()
        start = 0

        ret = 0
        for end in range(len(s)):
            item = s[end]
            if item not in alpha:
                alpha[item] = 0

            if alpha[item] == 1:
                while alpha[item] != 0:
                    alpha[s[start]] -= 1
                    start += 1

            alpha[item] += 1
            ret = max(ret, end - start + 1)

        return ret
# 
# s = Solution()
# print(s.lengthOfLongestSubstring("abcabcbb"))
# print(s.lengthOfLongestSubstring("bbbbb"))
# print(s.lengthOfLongestSubstring("pwwkew"))
# print(s.lengthOfLongestSubstring(""))
# print(s.lengthOfLongestSubstring(" "))

0개의 댓글