class Solution(object):
def lengthOfLongestSubstring(self, s):
dic, res, start, = {}, 0, 0
for i, ch in enumerate(s): # enumerate 함수를 이용해 각 값에 인덱스를 부여해준다.
if ch in dic: # 현재 for문에서 판정되고 있는 문자와 동일한 문자가 딕셔너리에 있을 경우
res = max(res, i-start) # 딕셔너리 내 현재까지 문자 요소가 반복되지 않은 문자열의 최대 길이
start = max(start, dic[ch]+1) # 다음 순서로 판정할 문자의 인덱스
dic[ch] = i # 딕셔너리에 문자와 인덱스 추가
return max(res, len(s)-start) # 동일한 문자가 중복되지 않은 문자열 중 가장 긴 문자열의 길이 리턴
'Algorithm' 카테고리의 다른 글
[LeetCode] #1 Increasing Triplet Subsequence (0) | 2021.07.31 |
---|---|
[백준] 5585번 문제: 거스름돈 파이썬 풀이 (BOJ 5585) (0) | 2021.07.31 |
댓글