728x90

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 Characters

Longest 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
๋‹คํ–ˆ๋‹ค