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给定一个字符串,请你找出其中不含有重复字符的最长子串的长度

最长子串