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

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

cpp 复制代码
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;
    }
};
相关推荐
weixin_307779133 小时前
C++代码实现MATLAB中的pade函数功能
开发语言·c++·算法·matlab
smj2302_796826523 小时前
解决leetcode第4064题至多一次取反能被k整除的最长子数组II
python·算法·leetcode
ProcessOn官方账号3 小时前
java IO操作 你快速认识IO的相关基本知识
java·开发语言
青山木3 小时前
Hot 100 --- 下一个排列
java·数据结构·算法·leetcode
垆边人似月.3 小时前
字符串重排后最大字典序
算法·leetcode·职场和发展
神仙别闹3 小时前
基于C++实现的(控制台)学校开课查询系统
开发语言·c++
Dylan的码园4 小时前
A+B问题 进制处理【逻辑控制 运算符】
c++·算法
hetao17338374 小时前
2026-09-27~28 hetao1733837 的刷题记录
c++·算法
只睡四小时4 小时前
JS 手写 D-pad 空间导航:电视端焦点引擎实战
android·开发语言·前端·javascript·ecmascript·hls·空间导航
2601_962218614 小时前
C++的几种编译器的实现
开发语言·c++