记录每个字符上次出现的位置,pri表示所有字符从pri+1开始都不重复
class Solution {
public:int lengthOfLongestSubstring(string s) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
if(s=="")
return 0;
int pri,mNum,pi[26];
pri = -1, mNum = -1;
memset(pi,-1,sizeof(pi));
for(int i=0;i<s.length();i++){
if(pi[s[i]-'a']!=-1)
pri = max(pri,pi[s[i]-'a']);
pi[s[i]-'a'] = i;
if(mNum<i-pri)
mNum = i-pri;
}
return mNum;
}
};
本文介绍了一种求解字符串中最长无重复字符子串长度的高效算法。通过记录每个字符最后一次出现的位置,该算法能在遍历过程中动态更新当前最长无重复子串的长度。
694

被折叠的 条评论
为什么被折叠?



