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

Leetcode 无重复字符的最长子串

时间:2024-04-05 21:11:20浏览次数:24  
标签:子串 字符 窗口 map int 重复 滑动 Leetcode

powcai的滑动窗口解决问题:不断向后滑动窗口,出现重复元素,重新计算窗口,巧妙利用map来记录先前出现的元素的位置索引

class Solution {
    public int lengthOfLongestSubstring(String s) {
        // 滑动窗口解决该问题
        int left = 0;
        int max = 0;
        Map<Character,Integer> map = new HashMap<Character,Integer>();
        for(int i =0;i<s.length();i++){
            if(map.containsKey(s.charAt(i))){
                left = Math.max(left,map.get(s.charAt(i))+1);
            }
            map.put(s.charAt(i),i);
            max = Math.max(max,i-left+1);
        }
        return max;
    }

}

标签:子串,字符,窗口,map,int,重复,滑动,Leetcode
From: https://www.cnblogs.com/xytang-mini-juan/p/18116200

相关文章

  • 【C语言学习】之字符数组与字符串处理函数
    1.字符数组1.字符数组的初始化1.单字符形式chara[3]={'a','b','c'}                定义一个字符型一维数组,数组名a,三个下表变量a,b,ccharb[][3]={'a','b','c','d','e','f','g'}  ......
  • Leetcode 412. Fizz Buzz
    给你一个整数n,找出从1到n各个整数的FizzBuzz表示,并用字符串数组answer(下标从1开始)返回结果,其中:answer[i]==“FizzBuzz”如果i同时是3和5的倍数。answer[i]==“Fizz”如果i是3的倍数。answer[i]==“Buzz”如果i是5的倍数。answer[i]......
  • 疯狂Python讲义学习笔记——第2章变量和简单类型2.4字符串入门
    思维导图          字符串的意思是“一串字符”,比如"Hello,Python"是一个字符串,"Howdoyoudo?"也是一个字符串。Python要求字符串必须使用引号括起来,可使用单引号或双引号,只要两边的引号能配对即可。4.1字符串和转义字符        字符串的内容几乎可......
  • 最长回文子串
    letcode最长回文子串给你一个字符串s,找到s中最长的回文子串如果字符串的反序与原始字符串相同,则该字符串称为回文字串。示例1输入:s="babad"输出:"bab"解释:"aba"同样是符合题意的答案。示例2:输入:s="cbbd"输出:"bb"解题思路此题可以用动态规划的思想去解决......
  • LeetCode in Python 300. Longest Increasing Subsequence (最长递增子序列)
    求最长递增子序列是深度优先搜索(DFS)的一种应用,有两种比较好的方法可以解决。第一种是动态规划法,时间复杂度为O(n*n),即设置边界条件和更新迭代公式求解最优解。第二种使用二分查找将时间复杂度降为O(nlogn)。本文给出两种方法的实现代码及说明。示例:图1最长递增子序列输入......
  • 删除字符串中间的*
    描述输入一个字符串,将串前和串后的保留,而将中间的删除。输入描述一个含*的字符串。输出描述删除了串中的*的字符串。用例输入1 ***ABC123**123*abc***********用例输出1 ***ABC123123abc***********代码#include<bits/stdc++.h>usingnamespacestd;intmain(......
  • LeetCode 13. 罗马数字转整数
    解题思路通过样例我们可以知道,将目标对应值和下一个目标对应值进行比较,如果小于,则sum=sum+目标对应值,如果大于,则sum=sum-目标对应值。最终的sum就是正确答案。相关代码classSolution{public:intromanToInt(strings){unordered_map<char,int>a;......
  • 黑马程序员Java从入门到起飞(上) P103 字符串-08-较难练习练习-金额转换
    文章目录标题:黑马程序员Java从入门到起飞(上)P103字符串-08-较难练习练习-金额转换前言一、案例的使用场景是什么?二、输入输出情况三、思路四、什么是查表法?五、代码实现六、完整代码总结标题:黑马程序员Java从入门到起飞(上)P103字符串-08-较难练习练习-金额转......
  • 6.字符串
    #字符串#字符串更新strvar="helloworld"print("已更新字符串:",strvar[:6]+'runoob')#已更新字符串:hellorunoob#转义字符#\a响铃print('\a')#\b退格print("Hello\bworld")#\000空print("Hello\000world&q......
  • 信息学奥赛一本通题目解析:1415:【17NOIP普及组】图书管理员(字符串)
    【题目描述】图书馆中每本书都有一个图书编码,可以用于快速检索图书,这个图书编码是一个正整数。每位借书的读者手中有一个需求码,这个需求码也是一个正整数。如果一本书的图书编码恰好以读者的需求码结尾,那么这本书就是这位读者所需要的。小D刚刚当上图书馆的管理员,她知......