news 2026/7/7 0:22:45

LeetCode 3.无重复字符的最长子串

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LeetCode 3.无重复字符的最长子串

3.无重复字符的最长子串

题面:

给定一个字符串 s ,请你找出其中不含有重复字符的 最长 子串 的长度。
【字串】:子字符串 是字符串中连续的 非空 字符序列。

示例 1:

输入: s = “abcabcbb”
输出: 3
解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。注意 “bca” 和 “cab” 也是正确答案。
示例 2:

输入: s = “bbbbb”
输出: 1
解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。
示例 3:

输入: s = “pwwkew”
输出: 3
解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。
请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列,不是子串。

解析:
复杂度

时间复杂度O ( n ) O(n)O(n)
空间复杂度O ( m i n ( n , m ) ) ( m 为字符集大小) O(min(n, m))\ (m为字符集大小)O(min(n,m))m为字符集大小)

Code
// C++ class Solution { public: int lengthOfLongestSubstring(string s) { unordered_set<char> temp; int left = 0; int right = 0; int ans = 0; int n = s.size(); while (right < n) { auto it = temp.find(s[right]); if (it == temp.end()) // 当前set中不存在该字符记录 { temp.insert(s[right]); right++; ans = max(ans, right - left); } else { temp.erase(s[left]); left++; } } return ans; } };
# PythonclassSolution:deflengthOfLongestSubstring(self,s:str)->int:temp=set()n=len(s)left,right,ans=0,0,0whileright<n:ifs[right]notintemp:temp.add(s[right])right+=1ans=max(ans,right-left)else:temp.remove(s[left])left+=1returnans
// Rust// use std::cmp;usestd::collections::HashSet;implSolution{pubfnlength_of_longest_substring(s:String)->i32{letmuttemp=HashSet::new();letmutleft=0;letmutright=0;letmutans=0;letn=s.len();// Rust无法直接通过索引访问字符,需要转化为Vec<char>letchars:Vec<char>=s.chars().collect();whileright<n{if!temp.contains(&chars[right]){temp.insert(chars[right]);right+=1;// ans = cmp::max(ans, right - left);ans=ans.max(right-left);}else{temp.remove(&chars[left]);left+=1;}}ansasi32}}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/7 11:27:20

5分钟掌握Flutter动态UI构建:Dynamic Widget完整指南

5分钟掌握Flutter动态UI构建&#xff1a;Dynamic Widget完整指南 【免费下载链接】dynamic_widget A Backend-Driven UI toolkit, build your dynamic UI with json, and the json format is very similar with flutter widget code. 项目地址: https://gitcode.com/gh_mirro…

作者头像 李华
网站建设 2026/7/7 13:03:51

告别排版困扰:5分钟掌握专业级LaTeX中文论文模板

还在为论文排版烦恼吗&#xff1f;这个精心打磨的LaTeX中文论文模板专为学术写作而生&#xff0c;让你专注于内容创作而非格式调整。双栏排版、中文支持、XeLaTeX编译——这些专业功能现在触手可及&#xff01; 【免费下载链接】LaTeX中文论文模板双栏支持XeLaTeX编译 本仓库提…

作者头像 李华
网站建设 2026/7/7 5:26:42

auto-install:5分钟学会自动安装依赖的智能开发工具

auto-install&#xff1a;5分钟学会自动安装依赖的智能开发工具 【免费下载链接】auto-install Install dependencies as you code ⚡️ 项目地址: https://gitcode.com/gh_mirrors/au/auto-install auto-install 是一个创新的 Node.js 工具&#xff0c;能够在你编写代码…

作者头像 李华
网站建设 2026/7/7 20:08:20

接触力学与摩擦学原理详解与技术应用指南

接触力学与摩擦学原理详解与技术应用指南 【免费下载链接】接触力学与摩擦学原理及其应用 接触力学与摩擦学原理及其应用欢迎来到本资源库&#xff01;这里为您提供了一份珍贵的学习资料——《接触力学与摩擦学的原理及其应用》PDF电子书的压缩包 项目地址: https://gitcode.…

作者头像 李华
网站建设 2026/7/6 22:53:09

25、DNS 服务器管理全攻略

DNS 服务器管理全攻略 1. DNS 简介 名称解析服务在每个网络中都至关重要,它为 Active Directory、应用程序和互联网提供名称解析,是网络连接的基础。在 Windows Server 2012 中,DNS 负责名称解析。深入理解 DNS 及其有效管理方法,能确保网络中用户、计算机和应用程序的内…

作者头像 李华