力扣HOT100——无重复字符的最长子字符串

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

示例 1:

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

思路:

滑动窗口。遍历整个字符串,每遍历到一个新的字符,则以它起点结合unordered_map来判断最长无重复的字串是多少,然后更答案maxlength。

cpp 复制代码
class Solution {
public:
    int lengthOfLongestSubstring(string s) {
        int maxlenth=0;
        
        for(int i=0;i<s.size();i++)
        {
            int j=i;
            unordered_map<char,int> mp;
            while(j<s.size()&&mp[s[j]]==0)
            {
                mp[s[j]]++;
                j++;
            }
            maxlenth=max(maxlenth,j-i);
                mp.erase(s[i]);
            
        }
        return maxlenth;
    }
};
相关推荐
老歌老听老掉牙28 分钟前
Open CASCADE学习|实现裁剪操作
c++·学习·opencascade·裁剪
姜行运28 分钟前
数据结构【二叉搜索树(BST)】
android·数据结构·c++·c#
JK0x073 小时前
代码随想录算法训练营 Day40 动态规划Ⅷ 股票问题
算法·动态规划
Feliz..3 小时前
关于离散化算法的看法与感悟
算法
水蓝烟雨4 小时前
1128. 等价多米诺骨牌对的数量
算法·hot 100
codists4 小时前
《算法导论(第4版)》阅读笔记:p11-p13
算法
技术求索者5 小时前
c++学习
开发语言·c++·学习
Kidddddult6 小时前
力扣刷题Day 43:矩阵置零(73)
算法·leetcode·力扣
大龄Python青年8 小时前
C语言 交换算法之加减法,及溢出防范
c语言·开发语言·算法
左直拳8 小时前
c++中“&”符号代表引用还是取内存地址?
开发语言·c++·指针·引用·右值·取内存地址