首页 > 编程语言 >3. 无重复字符的最长子串C++

3. 无重复字符的最长子串C++

时间:2024-02-24 19:47:26浏览次数:29  
标签:子串 字符 return int max C++ nowmax size

思路就是从头开始找,然后每次在从重复节点的后一个找。

class Solution {
public:
    int lengthOfLongestSubstring(string s) {
        int i=0,j=0,nowmax=1; 
        int max=1; 
        if(s.size()==0||s.size()==1) return s.size();
        map<char,int> m;
        int count=0;
        while(i<s.size()-1 && j<s.size()){
            j=i+1;
            m[s[i]]=count++;
            while(j<s.size() && m.find(s[j])==m.end()){
                m[s[j++]]=count++;
                nowmax++;
                if(nowmax>max) max=nowmax;
                
            }
            if(j==s.size()){
                break;
            }else{
                i+=m.find(s[j])->second+1;
                m.clear();
                count=0;
                nowmax=1;
            }
            
        }
        return max;
    }
};

结果:

好像是有点惨不忍睹,但是目前追求能过就行。。

标签:子串,字符,return,int,max,C++,nowmax,size
From: https://www.cnblogs.com/llllmz/p/18031464

相关文章

  • isdigit函数用法、获得字符串对应的数字
    1.isdigit函数用法语法:#include<ctype.h>intisdigit(intch);使用需要添加头文件#include<ctype>。功能:如果参数是0到9之间的数字字符,函数返回非零值,否则返回零值。2.GetNUmber//获得字符串对应的数字doubleGetNumber(stringstr,intindex){doublenumb......
  • 算法-字符串
    1.反转字符串(LeetCode344)题目:编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组s的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用O(1)的额外空间解决这一问题。思路:双指针,左边和右边对应位置的依次交换classSolution{......
  • C++ STL学习
    C++STL学习目录C++STL学习容器库概览对可以保存在容器中的元素的限制容器支持的操作所有容器都支持的操作或容器成员迭代器迭代器的公共操作迭代器的类型迭代器的const属性迭代器的操作类型迭代器范围使用左闭合区间的编程假定顺序容器顺序容器概述顺序容器的类型和特点确定使......
  • C# 的布尔类型和字符串类型(模板字符串)
    //布尔类型bollboolb=false;b=1==1;//trueboolb1=1>23;//false//值类型:在代码中初始化类型的时候没有赋值但是系统会自动赋值的叫值类型//byteshortint(default0)longfloatdou......
  • C++ 拷贝构造函数简单测试
    浅拷贝静态数组的空间体现深拷贝的效果#include<iostream>#include<string>usingnamespacestd;#defineSEX_SIZE10classStudent{public:Student(stringname){Age=10;Name=newstring(name);strcpy(Sex,"男");......
  • 【C++】【OpenCV】Visual Studio 2022 配置OpenCV
    记录一下VisualStudio配置OpenCV过程以及出现的问题本机环境:1、Windows102、VisualStudio2022 配置步骤:1、下载OpenCV(Releases·opencv/opencv·GitHub)在GitHub上下载最新的版本 2、双击打开,然后选择路径后,点击Extract 3、等待提取完成后在VisualStudio中新......
  • KMP 字符串搜索算法
    KMP字符串搜索算法是Knuth、Morris、Pratt三位在类似的时间段内一起发明的一种字符串搜索算法,该算法的主要原理是利用待查找子串中的某些信息,在匹配失败时能够减少回退的步数算法原理假设现在有一个待搜索的字符串ABABAC,如何利用现有的字符串实现在字符不匹配时尽可能向后调......
  • C++ 令人无语/好用的语法合集
    此贴用来总结一些傻逼C++语法,或者坑了我很久的写法。1、(坑)重载>,<,==时,千万不要使用pair为基的typedef!!!!!!pii的max不受你的重载影响,它自己有自己的max,然后typedef和define是相同的,基本可以看做直接替换,不会对作用域/命名做区分。2、(坑)lower_bound(..,..,{x......
  • 【字符串】
    首先创建字符串可以使用单引号、双引号、三单引号和三双引号,其中三引号可以多行定义字符串,Python不支持单字符类型,单字符在Python中也是作为一个字符串使用。我们定义一个变量str='python'语句,它在计算机中的执行顺序是先在内存中创建一个字符串Python,在程序栈寄存器中......
  • 综合练习字符串2
    思路2......