[Leetcode] 3. Longest Substring Without Repeating Characters โ
Problem โ
๋ฐ๋ณต๋๋ ๋ฌธ์๊ฐ ์๋ ์ต๊ณ ๋ก ๊ธด ๋ฌธ์์ด์ ๊ธธ์ด
Solution โ
์ฌ๋ผ์ด๋ฉ ์๋์ฐ ๋ฐฉ๋ฒ์ ์ฌ์ฉํจ. ์์๊ณผ ๋ ์ธ๋ฑ์ค๋ฅผ ์ด๋ํ๋ฉฐ ์ค๋ณต์ด ์๋ ๋ฌธ์์ด์ ํ์ธํ๊ณ ๊ธธ์ด๋ฅผ ์ ์ฅํ๋ค.
- ๋ง์ง๋ง ์ธ๋ฑ์ค๋ฅผ ๋๋ฆฐ๋ค.
- ์์๊ณผ ๋ ์ธ๋ฑ์ค๋ฅผ ์ด์ฉํด์ ๋ฌธ์์ด์ ์ถ์ถํ์ฌ ๋ฐ๋ณต๋๋ ๋ฌธ์์ด์ด ์๋์ง ๊ฒ์ฌํ๋ค.
- ๋ฐ๋ณต์ด ์๋ค๋ฉด ๊ธธ์ด๋ฅผ ๋น๊ตํ์ฌ ์ ์ฅํ๋ค.
- 2๋ฒ ์์ ์ ์งํํ๋ค. ๋ฌธ์์ด์ ๋ฐ๋ณต์ด ์๋ค๋ฉด ์์ ์ธ๋ฑ์ค๋ฅผ ๋๋ฆฐ๋ค.
JS Code โ
js
/**
* @param {string} s
* @return {number}
*/
var lengthOfLongestSubstring = function(s) {
let [start, end] = [0,0]
let maxLen = 0
while(end <= s.length) {
if (isRepeatChar(s.substring(start, end))) {
start++
continue;
}
maxLen = Math.max(maxLen , end-start)
end++
}
return maxLen
};
const isRepeatChar = (str) => {
return !!Array.from(str)
.find((item, idx, arr) => arr.indexOf(item) !== idx)
}