https://leetcode.com/problems/longest-substring-without-repeating-characters/description/
Longest Substring Without Repeating Characters - LeetCode
Can you solve this real interview question? Longest Substring Without Repeating Characters - Given a string s, find the length of the longest substring without duplicate characters. Example 1: Input: s = "abcabcbb" Output: 3 Explanation: The answer is "
leetcode.com
주어진 문자열의 부분 문자열 중 중복되는 문자가 없이 가장 긴 부분 문자열을 찾는 문제이다
.
중복되는 부분을 체크하기 위해 set을 사용하였고, 현재 체크중인 문자열을 확인하기 위해 que ue를 사용하였다. 문자를 하나 씩 set과 queue에 넣어주며 중복이 발생하였을 경우 해당 중복 문자까지 제거하고 다시 set과 queue를 이어 나갔다. 가장 큰 문자열의 크기는 set의 size를 이용해 확인하였다.
Sliding Window 문제로 되어있어 의문점이 들어 관련 솔루션을 찾아보니 set의 size가 아닌 left와 right의 인덱스를 슬라이딩 하여 문자의 길이를 해결하는 방법이 있어서 였다. 아래는 통과한 코드이다.
import java.util.*;
public class Solution {
public int lengthOfLongestSubstring(String s) {
Set<Character> set = new HashSet<>();
Queue<Character> que = new ArrayDeque<>();
int answer = 0;
for(int i = 0; i < s.length(); i++){
char cur = s.charAt(i);
while(set.contains(cur)){
set.remove(que.poll());
}
set.add(cur);
que.add(cur);
answer = Math.max(answer, set.size());
}
return answer;
}
}
'Algolithm-Leetcode > Sliding Window' 카테고리의 다른 글
| Sliding Window Maximum (0) | 2026.08.25 |
|---|---|
| Longest Repeating Character Replacement (0) | 2026.08.21 |
| Minimum Window Substring (0) | 2026.08.15 |
| Best Time to Buy and Sell Stock (0) | 2026.07.29 |