Algorithm (PS)

[leetcode] longest substring without repeating characters

minjiwoo 2023. 5. 15. 23:39
728x90

https://leetcode.com/problems/longest-substring-without-repeating-characters/

 

Longest Substring Without Repeating Characters - LeetCode

Can you solve this real interview question? Longest Substring Without Repeating Characters - Given a string s, find the length of the longest substring without repeating characters.   Example 1: Input: s = "abcabcbb" Output: 3 Explanation: The answer is "

leetcode.com

 

test case 는 다 맞혔는데 s = " "  값일때 error 가 발견되었다 

class Solution:
    def lengthOfLongestSubstring(self, s: str) -> int:
        answer = 0 # maxLength

        # 반복되는 문자열 구하기 
        n = len(s)

        for left in range(n-1):
            temp_set = set()
            temp_set.add(s[left])
            for right in range(left+1, n):   
                if s[right] not in temp_set:
                    temp_set.add(s[right])
                else: 
                    break 
            answer = max(len(temp_set), answer)

        return answer

 

정답 코드 

answer default 값을 1로 해주고, 문자열이 "" 로 주어질 때 예외처리를 해주어서 통과했다 !! 

class Solution:
    def lengthOfLongestSubstring(self, s: str) -> int:
        answer = 1 # maxLength

        # 반복되는 문자열 구하기 
        n = len(s)
        if s == "":
            answer = 0 
            return answer
            
        for left in range(n-1):
            temp_set = set()
            temp_set.add(s[left])
            for right in range(left+1, n):   
                if s[right] not in temp_set:
                    temp_set.add(s[right])
                else: 
                    break 
            answer = max(len(temp_set), answer)

        return answer
728x90