golang中怎么利用leetcode 实现一个无重复字符的最长子串
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,这篇文章给大家介绍golang中怎么利用leetcode 实现一个无重复字符的最长子串,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。给定一个字符串,请你找出其中不含有重复字符的
千家信息网最后更新 2025年12月02日golang中怎么利用leetcode 实现一个无重复字符的最长子串
这篇文章给大家介绍golang中怎么利用leetcode 实现一个无重复字符的最长子串,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。
示例 1:
输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 长度为 3。
示例 2:
输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 ,所以其长度为 1。
示例 3:
输入: "pwwkew"输出: 3解释: 因为无重复字符的最长子串是 ,所以其长度为 3。 请注意,你的答案必须是 子串 的长度, 是一个不是子串。
解题思路:
1,这是一个滑动窗口题目,需要移动左右指针
2,判断字符是否重复的题目,一般都用hashmap,用空间换时间
3,由于hashmap只需要表示字符存在不存在,可以用来存这个字符在串中的位置(从1开始),这是一个小技巧
4,如果字符没有出现过则右指针右移,长度增加
5,如果出现过,
A,如果出现的位置在左指针之前,记录当前位置到左指针的长度,并和最大长度比较(即左指针不移)
B,如果出现的位置在左指针之后,显然比当前长度短,就不用比较了,(即左指针移到上一次出现的位置的下一个地方)
6,更新hashmap中字符出现的位置为这一次最新出现的位置
写法1:
func lengthOfLongestSubstring(s string) int { m:=make(map[byte]int) res:=0 left:=0 for i:=0;i < len(s);i++{ if m[s[i]] >0 && left< m[s[i]]{ left= m[s[i]] } m[s[i]] = i + 1 if i-left+1>res{ res=i-left+1 } }return res}写法2:
func lengthOfLongestSubstring(s string) int {m:=make(map[byte]int)res:=0left:=0for i:=0;i < len(s);i++{if m[[]byte(s)[i]] == 0 || m[[]byte(s)[i]] < left{res = max(res, i - left + 1)} else {left = m[s[i]]}m[s[i]] = i + 1}return res}func max(a,b int)int{if a>b{return a}return b}
关于golang中怎么利用leetcode 实现一个无重复字符的最长子串就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
字符
长度
位置
指针
最长
示例
解释
输入
输出
内容
写法
更多
这是
题目
帮助
不错
最大
不用
兴趣
地方
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发与数据库交互
服务器机柜使用说明书
信创产业网络安全
网络安全强于信息化对不对
壮游奇迹mu 服务器
腾讯网络安全学院最新消息
注册互联网科技公司经营范围咋填
网络安全先行亦步
上传文件到服务器要流量吗
数据库给表的一项加1
泰拉瑞亚服务器房子怎么设定
百度ai软件开发
数据库删除是什么
新洲软件开发与定制
江苏品质软件开发价钱
宁波A软件开发
ios日本软件开发
杭州珍林网络技术有限公司靠谱吗
时间序列数据库分析
公司搭建网络安全体系
聚焦网络安全和金融安全文章
软件开发上海招聘湖北籍优先
邢台软件开发
四川安卓软件开发多少钱
安徽常用软件开发费用
成都易想网络技术
计算机网络安全谢希仁
计算机技术数据库
总行与软件开发中心
腾讯云服务器搭建小程序买哪个