'파이썬 알고리즘 인터뷰'를 보고 작성한 글입니다. 😀
문제 👉 <Longest Substring Without Repeating Characters - LeetCode>
1. 문제 (중복 문자 없는 가장 긴 부분 문자열)
중복 문자가 없는 가장 긴 부분 문자열의 길이를 출력하라.
2. 풀이
해시
와투 포인터
를 이용한 풀이- 부분 문자열의 처음과 끝에 포인터를 위치
- 중복이 없으면 끝을 오른쪽으로 이동
- 중복이 있을 경우 처음을 오른쪽으로 이동
3. 코드
- 해시와 투 포인터를 이용한 풀이
class Solution:
def lengthOfLongestSubstring(self, s: str) -> int:
ret, start = 0, 0
used = {}
for idx, char in enumerate(s):
if char in used and start <= used[char]:
start = used[char] + 1 # 한 칸 뒤로
else:
ret = max(ret, idx - start + 1)
used[char] = idx
return ret
- 결과 :
Time Submitted | Status | Runtime | Memory | Language |
---|---|---|---|---|
해시와 투포인터 | [Accepted] | 64 ms | 13.8 MB | python3 |
References
🏋🏻 개인적으로 공부한 내용을 기록하고 있습니다.
잘못된 부분이 있다면 과감하게 지적해주세요!! 🏋
'Coding Test > LeetCode' 카테고리의 다른 글
[LeetCode] 20. Valid Parentheses [Python(파이썬)] (0) | 2021.11.23 |
---|---|
[LeetCode] 328. Odd Even Linked List [Python(파이썬)] (0) | 2021.11.23 |
[LeetCode] 234. Palindrome Linked List [Python(파이썬)] (0) | 2021.11.23 |
댓글