본문 바로가기

Leetcode

Leetcode 3. Longest Substring Without Repeating Characters

오늘의 Leetcode는,

repeating character가 없는 substring 중 가장 긴 substring의 길이를 찾는 문제이다.

 

class Solution:
    def lengthOfLongestSubstring(self, s: str) -> int:
        sub = ''
        answer = 0
        for c in s:
            if c not in sub:
                sub += c
            else:
                 sub = sub[sub.index(c) + 1:] + c
            answer = max(answer, len(sub))
        return answer

 

 

 

slicing을 이용하였다.

만약 지금 가리키고 있는 글자가 있었다면, 그 글자의 뒤부터 ~ 새로운 글자까지의 길이와 넣지 않았을 때의 길이를 비교하는 것이다. 

만약 c가 substring의 처음에 있었다면 뒤에 추가하나 마나 똑같은 answer가 될 것이고,

c가 substring의 중간에 있었다면, c를 새로 뒤에 추가하면 더 짧아지니까 answer는 그대로 answer이 될 것이다.

 

파이썬은 slicing도 되고, 바로 그 character에 대한 index를 구할 수 있다는 점이 좋은 것 같다.

 

 

 

 

 

 

좀 발전하고 있는가?

 

이제 연구실 연구를 집중적으로 해야겠다. 부지런하게 논문도 읽기!