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

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

时间:2024-11-15 20:31:41浏览次数:1  
标签:子串 字符 窗口 结果 int ans 最长

  1. 题目链接

  2. 解题思路

    • 子串问题,思考,「以i开头」结果是什么,求出所有的结果,然后最长的那个就是答案。或者「以i结尾」结果是什么,求出所有的结果,最长的那个就是答案。
    • 本题使用「以i开头」结果是什么。
    • 当求出i开头的结果是[i, j],那么怎么求i+1的结果?其实就是滑动窗口。现在的窗口是[i, j],然后把i移除窗口,看窗口右侧是否还能进来。
  3. 代码

    class Solution {
    public:
        int lengthOfLongestSubstring(string s) {
            int n = s.length();
            if (n == 0) {
                return 0;
            }
            unordered_set<char> has;
            int ans = 1;
            int l = 0;
            int r = 1;
            has.insert(s[0]);
            while(r < n) {    // r能够进来吗?
                if (has.count(s[r]) == 0) {
                    has.insert(s[r]);
                    r++;
                } else {
                    has.erase(s[l]);
                    l++;
                }
                ans = max(ans, r - l);
            }
            return ans;
        }
    };
    

标签:子串,字符,窗口,结果,int,ans,最长
From: https://www.cnblogs.com/ouyangxx/p/18548609

相关文章

  • 构造方法,static,final关键字,字符串拼接,基本数据类型、包装类转String,String转基本
    1.构造方法的特点1.每一个类都至少有一个构造方法,默认是无参的构造方法。一旦写了有参的构造方法,那么无参的构造方法就丢失了,需要自己显式的写出无参构造方法。一般只要是显式写出构造方法,无参的构造方法是必须要构造的。2、构造方法,方法名必须和类名保持一致,并且没有返回值,......
  • 最长回文子序列
    *************C++题目来源:516.最长回文子序列-力扣(LeetCode)*************看一下题目这个让我想到前几天做过的最长回文子串,那个简单的中心拓展法我不会,头铁做成了dp数组,有点忘了,重新做一下。最长回文子串的题目是:给定一个字符串s,找出其最长的回文子串。简单地找......
  • C语言进阶3:字符串+内存函数
    本章重点求字符串长度strlen长度不受限制的字符串函数strcpystrcatstrcmp长度受限制的字符串函数strncpystrncatstrncmp字符串查找strstrstrtok误信息报告strerror字符操作内存操作memcpymemmovememcmpmemset0.前言:C语言中对字符和字符串的处理很是......
  • [oeasy]python0041_输出ASCII码表_英文字符编码_键盘字符_ISO_646
    输出ASCII码表_英文字符编码_键盘字符_ISO_646回忆上次内容上次输出了从0到122序号对应的所有字符 fornuminrange(123):print(num,chr(num),sep=":")字符类型包括数字大小写字母符号   添加图片注释,不超过14......
  • LCR 016. 无重复字符的最长子串(中等)(主站3)
    https://leetcode.cn/problems/wtcaE1/https://leetcode.cn/problems/longest-substring-without-repeating-characters/难度:☆☆☆题目:给定一个字符串s,请你找出其中不含有重复字符的最长连续子字符串的长度。示例:输入:s=“abcabcbb”输出:3输入:s=“b......
  • 帝国CMS过滤内容里面HTML字符简单的方法代码
    自定义函数在 /e/class/userfun.php 文件中添加以下代码:functionDELHTML($string){$string=preg_replace("'<script[^>]*?>.*?</script>'si","",$string);//去掉javascript$string=preg_replace("'<[\......
  • 每日OJ题_牛客_计算字符串的编辑距离_DP_C++_Java
    目录牛客_计算字符串的编辑距离_DP题目解析C++代码Java代码牛客_计算字符串的编辑距离_DP计算字符串的编辑距离_牛客题霸_牛客网描述:Levenshtein 距离,又称编辑距离,指的是两个字符串之间,由一个转换成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换......
  • 代码随想录算法训练营day46| 647. 回文子串 516.最长回文子序列
    学习资料:https://programmercarl.com/0647.回文子串.html#算法公开课动态规划最后一部分:回文字符串子串是从原字符串中连续截取的;子序列可以是从原字符串中不连续提取出元素构成的学习记录:647.回文子串(难构造dp数组,dp数组是从原字符串截取[i,j]范围的片段是否是回文字符串,布尔......
  • 自学习python之字符串2
    字符串:格式化format()方法1.位置参数(字段)2.关键字参数(相当于变量赋值)如果位置参数和关键字参数结合使用时,位置参数必须在关键字参数前面,否则报错打印花括号 格式化符号1.字符串格式化符号含义2.格式化操作符辅助命令m.n:主要是.n,m一般没用3.字......
  • c语言知识点总结-字符串、思维导图
    字面串、字符串变量、字符串的读写、字符串中字符的访问、函数、字符串处理操作、字符串数组总结。文中链接:CSDNhttps://mp.csdn.net/mp_blog/creation/editor/143772084锦黎pro-CSDN博客锦黎pro擅长c语言知识点总结、思维导图,等方面的知识https://blog.csdn.net/jilipro?......