오늘의 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를 구할 수 있다는 점이 좋은 것 같다.
좀 발전하고 있는가?
이제 연구실 연구를 집중적으로 해야겠다. 부지런하게 논문도 읽기!
'Leetcode' 카테고리의 다른 글
Leetcode 733. Flood Fill (0) | 2021.10.15 |
---|---|
Leetcode 567. Permutation in String (0) | 2021.10.14 |
Leetcode 876. Middle of the Linked List (0) | 2021.10.12 |
Leetcode 557. Reverse Words in a String III (0) | 2021.10.08 |
Leetcode 167. Two Sum II - Input array is sorted (0) | 2021.10.07 |