LeetCode-3
Longest Substring Without Repeating Characters : Given a string s, find the length of the longest substring without repeating characters.
note : s consists of English letters, digits, symbols and spaces.
Answer
:::python
class Solution:
def lengthOfLongestSubstring(self, s: str) -> int:
if len(s)==1:
return 1
left, right, answer_max = 0, 1, 0
for _ in range(len(s)):
while (left < right) and (right < len(s)):
if s[right] in s[left:right]:
answer = right - left
left += 1
right = left+1
break
else:
right += 1
if right == len(s):
answer = right-left
break
if answer_max < answer:
answer_max = answer
return answer_max
Result : 878ms Memory: 14mb
## Longest Substring Without Repeating CharactersLongest Substring Without Repeating Characters๋ ์ค๋ณต๋์ง ์๋ ๋ฌธ์์ด์ ์ต๋ ๊ธธ์ด๋ฅผ ์ฐพ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
์๊ณ ๋ฆฌ์ฆ ์ค๋ช
์ด ์๊ณ ๋ฆฌ์ฆ์ sliding window ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ์ฌ ๊ตฌํํ ์ ์๋ค. ์ฒซ๋ฒ์งธ ์ธ๋ฑ์ค์ ๋ง์ง๋ง ์ธ๋ฑ์ค๋ฅผ ๊ฐ๋ฆฌํค๋ ๋ ๊ฐ์ ํฌ์ธํฐ(๋๋ ์ธ๋ฑ์ค)๋ฅผ ์ฌ์ฉํ์ฌ ์ค๋ณต์ด ์๋ ๋ถ๋ถ ๋ฌธ์์ด์ ์ฐพ์ ์ ์๋ค.
๋ ๊ฐ์ ํฌ์ธํฐ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์์ด์ ํ์ํ๋ฉด์ ์๋ก์ด ๋ฌธ์๋ฅผ ๋ฐ๊ฒฌํ์ ๋๋ ํด๋น ๋ฌธ์์ ์ธ๋ฑ์ค๋ฅผ ๊ธฐ์ตํ๊ณ , ์ค๋ณต๋๋ ๋ฌธ์๋ฅผ ๋ฐ๊ฒฌํ์ ๋๋ ์ฒซ ๋ฒ์งธ ํฌ์ธํฐ๋ฅผ ์ค๋ณต๋ ๋ฌธ์ ๋ค์ ์ธ๋ฑ์ค๋ก ์ฎ๊ธด๋ค. ์ด์ ๋ ๋ฒ์งธ ํฌ์ธํฐ์ ์ฒซ ๋ฒ์งธ ํฌ์ธํฐ ์ฌ์ด์ ๋ฌธ์์ด์ด ์ค๋ณต๋์ง ์๋ ๊ฐ์ฅ ๊ธด ๋ถ๋ถ ๋ฌธ์์ด์ด๋ค.
์๊ฐ ๋ณต์ก๋
์ด ์๊ณ ๋ฆฌ์ฆ์ ์๊ฐ ๋ณต์ก๋๋ O(n)์ด๋ค. ํฌ์ธํฐ๋ฅผ ์ด๋์ํค๋ฉด์ ๋ฌธ์์ด์ ํ ๋ฒ๋ง ํ์ํ๊ธฐ ๋๋ฌธ์ ํ์ ์๊ฐ์ ๋ฌธ์์ด์ ๊ธธ์ด์ ๋น๋กํ๋ค.
์์
์
๋ ฅ: "abcabcbb"
์ถ๋ ฅ: 3 (abc)
์
๋ ฅ: "bbbbb"
์ถ๋ ฅ: 1 (b)
์
๋ ฅ: "pwwkew"
์ถ๋ ฅ: 3 (wke)
'๐ข One step' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[leetcode-9] Palindrome Number (0) | 2023.04.15 |
---|---|
[leetcode-4] Median of Two Sorted Arrays (0) | 2023.04.14 |
[leetcode-23] Merge k Sorted Lists (0) | 2023.04.09 |
[leetcode-641] Design Circular Deque (0) | 2023.04.08 |
[leetcode-622] Design Circular Queue (0) | 2023.04.07 |