首页 > 其他分享 >无重复字符的最长子串

无重复字符的最长子串

时间:2022-08-24 07:11:06浏览次数:58  
标签:子串 字符 int 重复 ans 最长

题目

给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。

示例

输入: s = "abcabcbb"
输出: 3 
解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。

思路

用滑动窗口维护最长不重复子串,当有重复的字母时将窗口移动滑出重复字母

代码

class Solution {
public:
    int lengthOfLongestSubstring(string s) {
        int ans=0,l=0,r;
        map<char,int>mp;
        for(r=0;r<s.size();r++){
            mp[s[r]]+=1;
            while(mp[s[r]]>1){
                mp[s[l]]-=1;
                l++;
            }
            ans=max(ans,r-l+1);
        }
        return ans;
    }
};

标签:子串,字符,int,重复,ans,最长
From: https://www.cnblogs.com/wxy214/p/16618486.html

相关文章

  • 通过字符串动态实现效果
    动态导包import('')动态获取属性__getattribute__和getattrclassA:a=1def__init__(self):self.b=2@staticmethoddefgetname():......
  • leetcode97-交错字符串
    交错字符串dp定义一个二维的dp数组,表示s1选取i个字符和s2选取j个字符组成s3的前i+j个字符能否成立。dp递归方程:如果i==0&&j==0,表示没有任何字符,true如......
  • 数字和字符串 与 数组 使用实例方法时的差别
    在数字和字符串中的实例方法不会改变其本身的值;而数组对象可能会改变原数组的值;从此延申出一个问题?......
  • excel分割字符串
    在EXCEL中如何分割一个字符串?:https://jingyan.baidu.com/article/295430f1f2ffa44d7f005011.html  ......
  • Delphi 内存流与字符串之间互相转换
    Delphi中的内存流还算比较好用的,有时候需要与字符串互转,网络上找到几个函数保存备用!//字符串保存到文件中,返回成功与否functionStringToFile(mString:string;mFileNam......
  • LeetCode 541. 反转字符串 II
    思路:每次移动2k位,判断是否超过数组,超过则全部反转,没超过则反转到第i+k个classSolution{public:stringreverseStr(strings,intk){for(inti=0;......
  • java用括号拆分字符串
    我有一个遵循这种模式的String列表:'Namewithspace(field1_field2)CONST'我想提取:带空格的名称括号内的值括号后的CONST值对于括号中的字符串()我正在使用:\(.*......
  • 使用 reduce 统计字符串每个字母出现的次数
    //统计字符串每个字母出现的次数letstr='asdfssaaasasasasaa'letobj=str.split('').reduce(function(prev,item){//prev的初始值是......
  • 基础之 - python数字转换为字符串
     问题:当需要将数字和字符串相加时,会报如下  解决:#1、数字转字符串a=12b='13'#1.1字符串格式化运算符#c='%d'%(a)+b#1.2使用str()函数#......
  • Delphi 十六进制,十进制,字符串直接的类型转换
    //内存数据(字符串或者内存指针)转化为十六进制字符串//'111'==>>'31313131'//E58D40004572726F==>>'E58D40004572726F'functionStrToHex(Value:PAnsiChar;Le......