原文地址:http://www.cnblogs.com/dollarzhaole/p/3155712.html
Given a string, find the length of the longest substring without repeating characters. For example, the longest substring without repeating letters for "abcabcbb" is "abc", which the length is 3. For "bbbbb" the longest substring is "b", with the length of 1.
我:这道题本来也不难,是自己有一个问题没想明白。
双指针的方法貌似对这种子串问题的解决帮助很大。
class Solution {
public:
int lengthOfLongestSubstring(string s) {
int locs[256];
memset(locs,-1,sizeof(locs));
int idx=-1,max=0;
for(int i=0;i<s.size();i++)
{
if(locs[s[i]]>idx)
{
idx=locs[s[i]];
}
if(i-idx>max)
max=i-idx;
locs[s[i]]=i;
}
return max;
}
};