您的位置:首页 > 其它

[leetcode] Longest Substring Without Repeating Characters

2014-12-07 23:54 423 查看
Longest
Substring Without Repeating Characters

class Solution {
public:
int lengthOfLongestSubstring(string s) {
int last[256];//记录256个字符上次出现过的位置,对应0~255
int start=0;//记录当前子串的起始位置
fill(last,last+256,-1);//初始化为-1

int maxlen=0;
for(int i=0;i<s.size();i++){
if(last[s[i]]>=start){//上次出现的位置在当前子串起始位置之后->有重复
maxlen=max(i-start,maxlen);//更新maxlen
start=last[s[i]]+1;//更新子串的其实位置
}
last[s[i]]=i;//记录(更新)该字符此次出现的位置
}
return max((int)s.size()-start,maxlen);//计算最后一次,如"abcd"
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: