c_cpp 无重复字符的最长子串的.cpp
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 无重复字符的最长子串的.cpp相关的知识,希望对你有一定的参考价值。
给定一个字符串,找出不含有重复字符的 最长子串 的长度。
示例:
给定 "abcabcbb" ,没有重复字符的最长子串是 "abc" ,那么长度就是3。
给定 "bbbbb" ,最长的子串就是 "b" ,长度是1。
给定 "pwwkew" ,最长子串是 "wke" ,长度是3。请注意答案必须是一个子串,"pwke" 是 子序列 而不是子串。
int lengthOfLongestSubstring(string s)
{
if(s == "")
return 0;
bool *bWord = new bool[26]();
map<char,bool> mapBool;
int num =1 ,max = 1;
int i = 1;
mapBool[s[0]] = true;
while(s[i] != '\0')
{
if(s[i] == s[i-1])
{
mapBool[s[i]] = true;
num = 1;
i++;
continue;
}
if( (mapBool.find(s[i]) == mapBool.end()) || mapBool[s[i]] == false)
{
mapBool[s[i]] = true;
num++;
}
else if(mapBool[s[i]] == true)
{
num = 0;
mapBool.clear();
i = s.rfind(s[i],i-1);
}
// else {
// mapBool[s[i]] = true;
// num++;
//
// }
if(num>max)
{
max = num;
}
cout <<"i:" << i << " s[i]:" << s[i] << " max:"<< max << " num:"<< num << endl;
i++;
}
return max;
}
以上是关于c_cpp 无重复字符的最长子串的.cpp的主要内容,如果未能解决你的问题,请参考以下文章
leetcode题解#3:无重复字符的最长子串
c_cpp 3.没有重复字符的最长子串 - 中 - 2018.6.6
符串的最长无重复字符的子串长度
LeetCode-3.无重复字符的最长子串
leetcode-03给定一个字符串,请你找出其中不含有重复字符的最长子串的长度
最长子串