字串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;}
};