|
| 1 | +""" |
| 2 | +๋ฌธ์์ด s๊ฐ ์ฃผ์ด์ก์ ๋, ์ค๋ณต๋ ๋ฌธ์๋ฅผ ์ ๊ฑฐํ๊ณ ๊ฐ์ฅ ๊ธด ์ฐ์๋ substring์ ์ฐพ์๋ผ |
| 3 | +
|
| 4 | +1. ์ฒซ๋ฒ์งธ ํ์ด |
| 5 | +
|
| 6 | +Hint! |
| 7 | +Generate all possible substrings & check for each substring if it's valid and keep updating maxLen accordingly. |
| 8 | +
|
| 9 | +TC: O(N^3) |
| 10 | +SC: O(N) |
| 11 | +=> Time Limit Exceeded |
| 12 | +
|
| 13 | +2. ์ต์ ํ - ์ฌ๋ผ์ด๋ฉ ์๋์ฐ + ํด์์
|
| 14 | +- ์ฌ๋ผ์ด๋ฉ ์๋์ฐ: ๋ฌธ์์ด ๋ด์์ left, right ํฌ์ธํฐ๋ก ๋ฒ์๋ฅผ ์ ํ๊ณ ์ ์ง์ ์ผ๋ก ์ด๋ |
| 15 | +- ํด์์
: ํ์ฌ ์๋์ฐ์ ์ด๋ค ๋ฌธ์๊ฐ ์๋์ง ๋น ๋ฅด๊ฒ ์ฒดํฌ ๊ฐ๋ฅ |
| 16 | +- ์ค๋ณต ๋ฌธ์๊ฐ ๋ฑ์ฅํ๋ฉด ์ผ์ชฝ ํฌ์ธํฐ๋ฅผ ์ด๋์์ผ์ ์ค๋ณต์ ์ ๊ฑฐ |
| 17 | +
|
| 18 | +TC: O(N) |
| 19 | +SC: O(N) |
| 20 | +""" |
| 21 | + |
| 22 | +# Time Limit Exceeded ํ์ด |
| 23 | +class Solution: |
| 24 | + def lengthOfLongestSubstring(self, s: str) -> int: |
| 25 | + max_len = 0 |
| 26 | + |
| 27 | + # Generate all possible substrings without duplicate characters |
| 28 | + def make_all_substrings(string): |
| 29 | + nonlocal max_len |
| 30 | + n = len(string) |
| 31 | + for i in range(n): |
| 32 | + for j in range(i + 1, n + 1): |
| 33 | + k = len(string[i:j]) |
| 34 | + if k == len(list(set(string[i:j]))): # if it's valid |
| 35 | + max_len = max(k, max_len) # keep updating maxLen accordingly |
| 36 | + |
| 37 | + make_all_substrings(s) |
| 38 | + return max_len |
| 39 | + |
| 40 | + |
| 41 | +# ์ต์ ํ - ์ฌ๋ผ์ด๋ฉ ์๋์ฐ + ํด์์
ํ์ด |
| 42 | +class Solution: |
| 43 | + def lengthOfLongestSubstring(self, s: str) -> int: |
| 44 | + char_set = set() # ํ์ฌ ์๋์ฐ์ ์๋ ๋ฌธ์๋ค |
| 45 | + left = 0 |
| 46 | + max_len = 0 |
| 47 | + |
| 48 | + for right in range(len(s)): |
| 49 | + # ์ค๋ณต ๋ฌธ์๊ฐ ๋์ค๋ฉด ์ผ์ชฝ ํฌ์ธํฐ๋ฅผ ์ด๋์์ผ ์ค๋ณต ์ ๊ฑฐ |
| 50 | + while s[right] in char_set: |
| 51 | + char_set.remove(s[left]) |
| 52 | + left += 1 |
| 53 | + |
| 54 | + # ์ค๋ณต์ด ์์ผ๋ฉด ์๋์ฐ์ ์ถ๊ฐ |
| 55 | + char_set.add(s[right]) |
| 56 | + |
| 57 | + # ์ต๋ ๊ธธ์ด ๊ฐฑ์ |
| 58 | + max_len = max(max_len, right - left + 1) |
| 59 | + |
| 60 | + return max_len |
0 commit comments