首页 > 其他分享 >3. Longest Substring Without Repeating Characters

3. Longest Substring Without Repeating Characters

时间:2024-06-16 12:29:54浏览次数:23  
标签:right int Substring length Without result answer Repeating left

Given a string s, find the length of the longest

substring

without repeating characters.

Example 1:

Input: s = "abcabcbb"
Output: 3
Explanation: The answer is "abc", with the length of 3.

Example 2:

Input: s = "bbbbb"
Output: 1
Explanation: The answer is "b", with the length of 1.

Example 3:

Input: s = "pwwkew"
Output: 3
Explanation: The answer is "wke", with the length of 3.
Notice that the answer must be a substring, "pwke" is a subsequence and not a substring.

Constraints:

  • 0 <= s.length <= 5 * 104
  • s consists of English letters, digits, symbols and spaces.
class Solution {
public:
    int lengthOfLongestSubstring(string s) {
        int result=0;
        int left=0;
        unordered_set<char>window;
        for(int right=0;right<s.length();right++){
            char c=s[right];
            while(window.count(c)){
                window.erase(s[left++]);
            }
            window.insert(c);
            result=max(result,right-left+1);
        }
        return result;
    }
};

注意:

        1.同样的,left表示起始位置,right表示终止位置,均从零开始,用result来记录最后的最小长度。

        2.创建一个哈希表Window,用来记录不重复的字符串

        3.注意while循环,当Window里面已经有过c的时候,一直将Window的left++的元素删除,注意,left同时也会++,以此来保证最后得到的字符串长度是最小的。

        4.result是result和right-left+1两者中的较大值

标签:right,int,Substring,length,Without,result,answer,Repeating,left
From: https://blog.csdn.net/2301_80161204/article/details/139718239

相关文章

  • CF1234F Yet Another Substring Reverse
    CF1234FYetAnotherSubstringReverse状压dp+高维前缀和一个很显然的发现是最长子串长度不会超过字符集。那么如果没有这个操作,是很简单的,我们看看多了这个操作意味着什么。对于一个子串,考虑一次翻转对它的影响。在它内部的翻转肯定是没有意义的;我们一定有一个操作能将任意......
  • 文献阅读——Single Clause Assumption without Activation Literals to Speed-up IC
    SingleClauseAssumptionwithoutActivationLiteralstoSpeed-upIC3 @inproceedings{DBLP:conf/fmcad/FroleyksB21,author={NilsFroleyksandArminBiere},title={SingleClauseAssumptionwithoutActivationLitera......
  • 5-Longest Palindromic Substring-最长回文串
    问题描述链接:https://leetcode.com/problems/longest-palindromic-substring/description/Givenastring s,return thelongest palindromicsubstringins解释:给定一个字符串,求其最长的回文串回文串:一个字符串,如果从左往右读和从左往右读读出来的序列是一样的,称......
  • LeetCode 1915. Number of Wonderful Substrings
    原题链接在这里:https://leetcode.com/problems/number-of-wonderful-substrings/description/题目:A wonderful stringisastringwhere atmostone letterappearsan odd numberoftimes.Forexample, "ccjjc" and "abab" arewonderful,but "ab&......
  • ABC240Ex Sequence of Substrings
    ABC240ExSequenceofSubstringsLIS的好题改编。约定\(S(l,r)\)为字符串\(s\)中第\(l\)位到底\(r\)​位。\(S(l,r)<S(x,y)\)为字符串中\([l,r]\)的子串字典序比\([x,y]\)的子串小。前置LIS的\(n\logn\)求法。题解我们考虑按照类似于朴素LIS的方式设状......
  • ABC347B Substring
    题目描述给你一个由小写英文字母组成的字符串S,S有多少个不同的非空子串?子串是连续的子序列。例如,xxx是yxxxy的子串,但不是xxyxx的子串。数据范围:S是长度在1和100之间(含)的字符串,由小写英文字母组成。题解我认为这道题放在普及组的话,非常适合放在第一题和第二题之间,......
  • js substr 与 substring 有什么区别吗
    在JavaScript中,substr和substring是用于提取字符串的两个方法,它们的功能类似,但有一些区别:1.substr(start,length)方法:参数:start:必需。要提取的子字符串的起始位置。如果为负数,表示从字符串末尾开始计数。length:可选。要提取的字符数。如果省略或为负数,则提取到字符......
  • 解决MySQL安装错误:`The server quit without updating PID file`
    在MySQL安装或启动过程中,你可能会遇到如下错误信息:TheserverquitwithoutupdatingPIDfile(/var/lib/mysql/your_hostname.pid).这个错误通常表明MySQL服务器尝试启动时遇到了问题,导致它异常终止而未能更新PID文件。PID文件用于存储启动的MySQL服务进程的ID。本文旨......
  • JavaScript实现文件大小转换、单位转换、toFixed、indexOf、substr、substring、B、KB
    constbytesToSize=(size)=>{if(size<0.1*1024){//小于0.1KB,则转化成Bsize=size.toFixed(2)+'B'}elseif(size<0.1*1024*1024){//小于0.1MB,则转化成KBsize=(size/1024).toFixed(2)+'KB'}else......
  • 解决 "last line of file ends without a newline" 警告的方法:使用 .editorconfig
    在软件开发过程中,我们经常会遇到一些常见的代码规范问题,其中之一就是"lastlineoffileendswithoutanewline"警告。这个警告表示文件的最后一行缺少换行符,可能会导致一些编辑器或版本控制系统的问题。如果每次都手动去操作添加一行有点麻烦,我们可以通过使用.editorconfig......