๐Ÿฅž BE
home

3_Longest Substring Without Repeating Characters

๋‹ด๋‹น์ž
์™„๋ฃŒ ์—ฌ๋ถ€
Solved
์š”์•ฝ
๋‚ ์งœ
2024/07/19
ํƒœ๊ทธ
์ž๋ฃŒ๊ตฌ์กฐ
๋‚œ์ด๋„
Medium
์ถœ์ฒ˜
LeetCode

์ฝ”๋“œ

import java.util.HashMap; import java.util.Map; class Solution { public int lengthOfLongestSubstring(String s) { Map<Character, Integer> charIndexMap = new HashMap<>(); int maxLength = 0; int left = 0; // ์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ ๊ตฌํ˜„ for (int right = 0; right < s.length(); right++) { char currentChar = s.charAt(right); // ํ˜„์žฌ ๋ฌธ์ž๊ฐ€ ํ•ด์‹œ๋งต์— ์กด์žฌํ•˜๊ณ , ์œˆ๋„์šฐ์˜ ์‹œ์ž‘ ์ธ๋ฑ์Šค๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๋‹ค๋ฉด if (charIndexMap.containsKey(currentChar) && charIndexMap.get(currentChar) >= left) { // ์‹œ์ž‘ ์ธ๋ฑ์Šค ๊ฐฑ์‹  left = charIndexMap.get(currentChar) + 1; } // ํ•ด์‹œ๋งต์— ํ˜„์žฌ ๋ฌธ์ž ์ธ๋ฑ์Šค๋ฅผ ์ €์žฅ charIndexMap.put(currentChar, right); // ํ˜„์žฌ ์œˆ๋„์šฐ์˜ ๊ธธ์ด๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ , ์ตœ๋Œ€ ๊ธธ์ด ๊ฐฑ์‹  maxLength = Math.max(maxLength, right - left + 1); } return maxLength; } }
Java
๋ณต์‚ฌ

๋ฌธ์ œ ํ•ด๊ฒฐ ์•„์ด๋””์–ด

์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ, ContainsKey๋ฅผ ํ†ตํ•ด ํ•ด์‹œ๋งต์— ์ €์žฅํ•œ ์ค‘๋ณต๋ฌธ์ž๊ฐ€ ๋‚˜์˜ฌ ๋•Œ๋งˆ๋‹ค ์‹œ์ž‘ ์ธ๋ฑ์Šค๋ฅผ ๊ฐฑ์‹ ํ•ด๊ฐ€๋ฉฐ, ์ตœ๋Œ€ ๊ธธ์ด๋ฅผ ๊ตฌํ•˜๋ฉด ๋œ๋‹ค.