您的位置:首页 > 健康 > 养生 > C++速通LeetCode中等第5题-无重复字符的最长字串

C++速通LeetCode中等第5题-无重复字符的最长字串

2024/10/6 2:19:57 来源:https://blog.csdn.net/weixin_47768406/article/details/142337920  浏览:    关键词:C++速通LeetCode中等第5题-无重复字符的最长字串

字串substr法,定义字串的头部和长度,和字串后一位对比,如果不存在重复元素则长度+1,存在重复元素则头部更新,长度重置。

 

class Solution {
public:int lengthOfLongestSubstring(string s) {string s2;//存放s的前一部分,判断该部分有没有后一个字符int res = 1;int start = 0;//子序列第一个的序号int len = 1;//连续的前端子序列长度if(!s.size()) return 0;if(s[0] == ' ') return 1;for(start = 0; ; ){   if(start+len == s.size()) return res;s2 = s.substr(start,len);//一开始存放第一个字符if(count(s2.begin(),s2.end(),s[start+len]))//判断有没有重复,重复就重新开始计数{start += 1;//重复则start变到尾部后一位res = max(res,len);len = 1;}else//不重复start不变{len++;res = max(res,len);}}return res;}
};

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com