728x90
https://leetcode.com/problems/longest-substring-without-repeating-characters/
딕셔너리에 문자열의 키와 인덱스를 저장해놓고
겹치는 문자 있을경우 그에따라 값을 조정하면서 최대 길이를 구해주었다.
class Solution:
def lengthOfLongestSubstring(self, s: str) -> int:
answer = 0
# key = char / value = index
char_dic = {}
left_idx = 0
for right_idx, char in enumerate(s):
if char not in char_dic:
answer = max(answer, (right_idx - left_idx + 1))
else:
if char_dic[char] < left_idx:
answer = max(answer, (right_idx - left_idx + 1))
else:
left_idx = char_dic[char] + 1
char_dic[char] = right_idx
return answer
728x90
'PS > 릿코드' 카테고리의 다른 글
[릿코드 1319] Number of Operations to Make Network Connected(파이썬/python) (0) | 2023.03.23 |
---|---|
[릿코드 2492] Minimum Score of a Path Between Two Cities (파이썬/python) (0) | 2023.03.22 |
[릿코드 6] Zigzag Conversion (파이썬/python) (0) | 2023.03.20 |
[릿코드 2186] Minimum Number of Steps to Make Two Strings Anagram II (파이썬/python) (0) | 2023.03.08 |
[릿코드 1497] Check If Array Pairs Are Divisible by k (파이썬/python) (0) | 2023.03.08 |