3. Longest Substring Without Repeating Characters
Medium
4867249FavoriteShare
Given a string, find the length of the longest substring without repeating characters.
Example 1:
Input: "abcabcbb"
Output: 3
Explanation: The answer is "abc"
, with the length of 3.
Example 2:
Input: "bbbbb"
Output: 1
Explanation: The answer is "b"
, with the length of 1.
Example 3:
Input: "pwwkew" Output: 3 Explanation: The answer is"wke"
, with the length of 3. Note that the answer must be a substring,"pwke"
is a subsequence and not a substring.
这道题调了很多遍,需要考虑到au,dvdf,abb这样的输入,比如右边界正好在结尾,这样的特殊情况。
class Solution {
public:
int lengthOfLongestSubstring(string s) {
int ans=0;
set<char> t;
set<char>::iterator it;
for(int i=0;i<s.length();i++)
{
int j=i;
while(j<s.length())
{
it=t.find(s[j]);
if(it==t.end())
{
t.insert(s[j]);
ans=ans< t.size()?t.size():ans;
j++;
}
else
{
ans=ans < t.size() ? t.size(): ans;
t.clear();
j=s.length();
}
}
}
return ans;
}
};