https://leetcode.com/problems/longest-substring-without-repeating-characters/description
Q. 주어진 문자열 s 에서 문자가 중복되지 않는 최대 sub string의 길이를 찾아라.
Solution.
Sliding window + hash 문제.
중복이 생기면, left를 중복이 생기지 않을 때 까지 당긴다.
더보기
public int LengthOfLongestSubstring(string s)
{
Dictionary<char, int> dictBuff = new Dictionary<char, int>();
int left = 0, right = 0;
int maxLen = 0;
for(; right < s.Length; ++right)
{
char cur = s[right];
if(!dictBuff.ContainsKey(cur))
{
dictBuff.Add(cur, 1);
maxLen = Math.Max(maxLen, dictBuff.Count);
}
else
{
while(dictBuff.ContainsKey(cur))
{
dictBuff.Remove(s[left]);
++left;
}
dictBuff.Add(cur, 1);
}
}
return maxLen;
}
적절한 결과를 얻었다.
'Leetcode > Top 100 Liked' 카테고리의 다른 글
[Sliding Window][Medium] 438. Find All Anagrams in a String (0) | 2024.04.19 |
---|---|
[Sliding Window][Hard] 76. Minimum Window Substring (0) | 2024.04.18 |
[Matrix][Medium] 73. Set Matrix Zeros (0) | 2024.04.17 |
[Matrix][Medium] 54. Spiral Matrix (0) | 2024.04.16 |
[Linked List][Easy] 206. Reverse Linked List. (0) | 2024.04.13 |