依旧水题一道,两头往后滑动,用数组映射出现的字符就行。
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.
class Solution {
public:
int lengthOfLongestSubstring(string s)
{
int len=s.length();
int st=0,en=0,result=0;
int vis[1005];
memset(vis,0,sizeof(vis));
while(en<len)
{
int now=s[en];
while(st<en && vis[now])
{
vis[s[st]]=0;
st++;
}
vis[now]=1;
en++;
result=max(result,en-st);
}
return result;
}
};