본문 바로가기
PROGRAMMING/LeetCode

[Leetcode] 3. Longest Substring Without Repeating Characters_해설, 풀이, 설명

by HYUNHP 2022. 3. 29.
728x90
반응형

안녕하세요, HELLO

 

오늘은 Leetcode 알고리즘 문제 '3. Longest Substring Without Repeating Characters'에 대해서 살펴보고자 합니다. 

 

알고리즘 문제, 코드, 해설 그리고 Leetcode에서 제공해준 solution 순서대로 정리하였습니다.


STEP 1. 'Longest Substring Without Repeating Characters' 알고리즘 문제

 

STEP 2. 'Longest Substring Without Repeating Characters' 코드(code)

 

STEP 3. 'Longest Substring Without Repeating Characters' 해설

 

반응형

 

STEP 1. 'Longest Substring Without Repeating Characters' 알고리즘 문제

 

Given a string s, find the length of the longest substring without repeating characters.

 

문자열이 지정되면 문자를 반복하지 않고 가장 긴 문자열을 구합니다.

 

Constraints:

  • 0 <= s.length <= 5 * 104
  • s consists of English letters, digits, symbols and spaces.


STEP 2. 'Longest Substring Without Repeating Characters' 코드(code)

 

■ Runtime: 56 ms, faster than 95.57% of Python3 online submissions for Longest Substring Without Repeating Characters.
■ Memory Usage: 14.2 MB, less than29.52%ofPython3online submissions forLongest Substring Without Repeating Characters.

 

class Solution:
    def lengthOfLongestSubstring(self, s: str) -> int:
        final = {}
        temp = ""
        count = 0

        for i, value in enumerate(s):
            if i != int(len(s)-1):
                if value not in temp:
                    temp += value
                    count += 1
                else:
                    final[temp] = count
                    if temp[0] == value:
                        temp = temp[1:] + value
                        count = len(temp)
                    elif temp[-1] == value:
                        temp = value
                        count = 1
                    else:
                        temp = temp[temp.find(value)+1:] + value
                        count = len(temp)
            else: 
                if value not in temp:
                    temp += value
                    count += 1
                    final[temp] = count
                else:
                    final[temp] = count
                    
        return max(final.values()) if len(final) != 0 else 0

STEP 3. 'Longest Substring Without Repeating Characters' 해설

 

코드를 작성하면서 참고한 영상 들을 공유드립니다.

 

URL: https://www.youtube.com/watch?v=wiGpQwVHdE0 

 

URL: https://www.youtube.com/watch?v=3IETreEybaA 

 

 

 

■ 마무리

 

오늘은 Leetcode 알고리즘 문제 '3. Longest Substring Without Repeating Characters'에 대해서 알아봤습니다.

좋아요와 댓글 부탁드리며,

오늘 하루도 즐거운 날 되시길 기도하겠습니다 :)

감사합니다.

 

반응형

댓글