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;
    }
};
相关推荐
智者知已应修善业6 分钟前
【51单片机调用__TIME__无法实时时间】2023-7-10
c++·经验分享·笔记·算法·51单片机
凤凰院凶涛QAQ15 分钟前
《C++转JAVA快速入手系列》:基本通用语法篇
java·开发语言·c++
zjun100118 分钟前
QT:语言翻译
开发语言·qt
Shadow(⊙o⊙)32 分钟前
C++常见错误解析2.0
开发语言·数据结构·c++·后端·学习·算法
帅小伙―苏34 分钟前
力扣483找到字符串中所有字母异位词
算法·leetcode
谢谢 啊sir36 分钟前
L2-057 姥姥改作业 - java
java·开发语言
l1t37 分钟前
duckdb excel插件和rusty_sheet插件在python中的不同表现
开发语言·python·excel
人道领域40 分钟前
【黑马点评日记】高并发秒杀:库存超卖与锁机制解析
java·开发语言·redis·spring·intellij-idea
欧米欧44 分钟前
STRING的底层实现
前端·c++·算法
lsx2024061 小时前
《jEasyUI 创建树形下拉框》
开发语言