面试经典150题——Day31

文章目录

一、题目

3. Longest Substring Without Repeating Characters

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.

题目来源: leetcode

二、题解

双指针+滑动窗口

cpp 复制代码
class Solution {
public:
    int lengthOfLongestSubstring(string s) {
        int n = s.length();
        if(n == 0) return 0;
        int i = 0;
        unordered_map<char,int> map;
        map[s[i]] = 1;
        int res = 1;
        for(int j = 1;j < n;j++){
            while(map[s[j]] == 1 && i < j){
                map[s[i]] = 0;
                i++;
            }
            if(map[s[j]] != 1) map[s[j]] = 1;
            res = max(res,j - i + 1);
        }
        return res;
    }
};
相关推荐
superior tigre2 分钟前
C++学习:六个月从基础到就业——C++11/14:列表初始化
c++·学习
2301_794461576 分钟前
力扣-283-移动零
算法·leetcode·职场和发展
编程绿豆侠7 分钟前
力扣HOT100之二叉树:98. 验证二叉搜索树
算法·leetcode·职场和发展
啊吧怪不啊吧14 分钟前
C/C++之内存管理
开发语言·汇编·c++
superior tigre19 分钟前
C++学习:六个月从基础到就业——C++11/14:decltype关键字
c++·学习
技术流浪者22 分钟前
C/C++实践(十)C语言冒泡排序深度解析:发展历史、技术方法与应用场景
c语言·数据结构·c++·算法·排序算法
Funny-Boy43 分钟前
Reactor (epoll实现基础)
服务器·网络·c++
I AM_SUN1 小时前
98. 验证二叉搜索树
数据结构·c++·算法·leetcode
unityのkiven1 小时前
C++中析构函数不设为virtual导致内存泄漏示例
开发语言·c++
学习中的码虫1 小时前
数据结构基础排序算法
数据结构·算法·排序算法