力扣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;
    }
};
相关推荐
墨染点香11 分钟前
LeetCode 刷题【139. 单词拆分】
算法·leetcode·职场和发展
小兔崽子去哪了11 分钟前
数据结构和算法(Python)
数据结构·python
永远有缘26 分钟前
四种编程语言常用函数对比表
java·开发语言·c++·python
C++_girl27 分钟前
c++、java/python语言有什么区别?为什么c++更快?
java·开发语言·c++
艾莉丝努力练剑27 分钟前
【Linux权限 (二)】Linux权限机制深度解析:umask如何决定默认权限与粘滞位的妙用
大数据·linux·服务器·c++·ubuntu·centos·1024程序员节
彩妙不是菜喵28 分钟前
基于C语言上,面向对象语言:C++基础(学完C语言后再看)
c语言·开发语言·c++
夜晚中的人海2 小时前
【C++】位运算算法习题
开发语言·c++·算法
枫叶丹42 小时前
【Qt开发】布局管理器(一)-> QVBoxLayout垂直布局
开发语言·c++·qt
superior tigre2 小时前
(huawei)5.最长回文子串
c++·算法
Qt程序员2 小时前
C++ 虚函数的使用开销以及替代方案
c++·c++设计模式·c/c++·c++虚函数