Skip to content

Commit a69f666

Browse files
committed
Solve: Longest Substring Without Repeating Characters
1 parent b98d68c commit a69f666

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
"""
2+
Constraints:
3+
- 0 <= s.length <= 5 * 10^4
4+
- s consists of English letters, digits, symbols and spaces.
5+
6+
Time Complexity: O(n)
7+
- ๋ฌธ์ž์—ด์„ ํ•œ๋ฒˆ๋งŒ ์ˆœํšŒ
8+
9+
Space Complexity: O(n)
10+
- ๋”•์…”๋„ˆ๋ฆฌ์— ๋ฌธ์ž์™€ ์ธ๋ฑ์Šค ์ €์žฅ
11+
12+
ํ’€์ด ๋ฐฉ๋ฒ•:
13+
1. ์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ์™€ ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ํ™œ์šฉ
14+
2. seen ๋”•์…”๋„ˆ๋ฆฌ์— ๊ฐ ๋ฌธ์ž์˜ ๋งˆ์ง€๋ง‰ ๋“ฑ์žฅ ์œ„์น˜๋ฅผ ์ €์žฅ
15+
3. ์ค‘๋ณต ๋ฌธ์ž๋ฅผ ๋งŒ๋‚˜๋ฉด ์œˆ๋„์šฐ์˜ ์‹œ์ž‘์ (current_start)์„ ์ค‘๋ณต ๋ฌธ์ž ๋‹ค์Œ ์œ„์น˜๋กœ ์ด๋™
16+
4. ๋งค ๋‹จ๊ณ„์—์„œ ํ˜„์žฌ ์œˆ๋„์šฐ์˜ ๊ธธ์ด๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ  ์ตœ๋Œ€ ๊ธธ์ด ๊ฐฑ์‹ 
17+
5. ์ตœ์ข…์ ์œผ๋กœ ๊ฐ€์žฅ ๊ธด ์ค‘๋ณต ์—†๋Š” ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์˜ ๊ธธ์ด ๋ฐ˜ํ™˜
18+
"""
19+
20+
class Solution:
21+
def lengthOfLongestSubstring(self, s: str) -> int:
22+
seen = {}
23+
current_start = 0
24+
max_length = 0
25+
26+
for i in range(len(s)):
27+
char = s[i]
28+
29+
if char in seen and seen[char] >= current_start:
30+
current_start = seen[char] + 1
31+
32+
seen[char] = i
33+
34+
current_length = i - current_start + 1
35+
max_length = max(current_length, max_length)
36+
37+
return max_length

0 commit comments

Comments
ย (0)