Given a string, find the length of the longest substring without repeating characters.
Examples:
Given "abcabcbb"
, the answer is "abc"
, which the length is 3.
Given "bbbbb"
, the answer is "b"
, with the length of 1.
Given "pwwkew"
, 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.
思路:
LeetCode的第3题,给定一个字符串,找到其中的一个最长的字串,使得这个子串不包含重复的字符。
滑动窗口即可
class Solution {
public:
int lengthOfLongestSubstring(string s) {
map<char,int>vis;
int len = s.length();
int ans = 0;
for(int l=0,r=0;r<len;r++){
vis[s[r]]++;
while(l<len && vis[s[r]]>1) vis[s[l++]]--;
ans=max(ans,r-l+1);
}
return ans;
}
};