给定一个字符串 s ,请你找出其中不含有重复字符的 最长 子串 的长度。
class Solution {
public:
int lengthOfLongestSubstring(string s) {
//n为字符串长度
int n=s.length();
//最长
int maxans=0;
//遍历字符串
for(int i=0;i<n;i++){
//定义哈希表存储字符出现的次数
unordered_map<char,int>hash;
//当前字符出现的次数++
hash[s[i]]++;
//子串长度++
int ans=1;
//遍历剩余字符
for(int j=i+1;j<n;j++){
//存储字符出现的次数
hash[s[j]]++;
//如果当前字符是第一次出现
if(hash[s[j]]==1){
//子串长度++
ans++;
}
//不是第一次出现退出循环
else{
break;
}
}
//更新最长子串长度
maxans=max(maxans,ans);
}
return maxans;
}
};
1万+

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



