栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

剑指 Offer 48. 最长不含重复字符的子字符串(python/c++)滑动窗口

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

剑指 Offer 48. 最长不含重复字符的子字符串(python/c++)滑动窗口



滑动窗口解法

c :
class Solution {
public:
 int lengthOfLongestSubstring(string s) {
 string subs ;//子串
 int max 0,t 0;//max 最大子串长度 t:索引
 for (int i 0;i s.size();i ){
 t subs.find(s[i]);查找 当前字符在子串中出现的位置
 if(t ! -1){//如果找到
 if(max subs.size()){//判断当前子串 与 历史最长串的大小
 max subs.size();
 subs subs.erase(0,t 1);//去掉前t 1个字符
 subs s[i];//不管有没有出现 都需要将当前的字符添加到子串中
 if(max subs.size()){//最终还是要判断一次 因为如果从来都没有重复过的话 就不会进入if(t ! -1) 也不会更新max了
 max subs.size();
 return max;
python:
class Solution:
 def lengthOfLongestSubstring(self, s: str) - int:
 substr 
 t,max_len 0,0
 for i in s:
 t substr.find(i)
 if t ! -1:
 if max_len len(substr):
 max_len len(substr)
 substr substr[t 1:]
 substr i
 if max_len len(substr):
 max_len len(substr)
 return max_len
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/266747.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号