golang中怎么利用leetcode 实现一个无重复字符的最长子串
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章给大家介绍golang中怎么利用leetcode 实现一个无重复字符的最长子串,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。给定一个字符串,请你找出其中不含有重复字符的
千家信息网最后更新 2026年11月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安全错误
数据库的锁怎样保障安全
互联网黑科技
互联网扶贫科技
北京互联网科技公司
小马过河互联网科技
汇久创客互联网科技
海南购全球互联网科技
互联网科技实习生岗位职责
栖莱科技互联网股份有限公司
河南猎农互联网科技有限公司
阿大互联网科技有限公司
中国互联网十大科技股排名
华中科技大学互联网的牛人
滨湖区互联网智能科技产品有哪些
皮皮虾互联网科技有限公司
富国互联网金融科技混合基金
宇信科技在杭州互联网排第几
互联网科技融合创新
云鲸互联网络科技有限公司
米泉互联网科技专业怎么样
科技美学互联网 艺术
互联网科技行业发展
工业互联网科技新基建
金融科技创新监管互联网金融
互联网科技公司介绍
华中科技有哪些互联网大佬
汽车互联网创新科技园
彤创互联网科技有限公司
互联网与医疗科技
图游互联网科技
现代科技的标志之一的互联网