20241108,LeetCode 每日一题,用 Go 计算字符串中最长无重复字符

题目

给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:

输入: s = "abcabcbb"
输出: 3
解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。

示例 2:

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

示例 3:

输入: s = "pwwkew"
输出: 3
解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。

请注意,你的答案必须是 子串 的长度,"pwke" 是一个*子序列,*不是子串。

思路

使用滑动窗口算法,遍历字符串。

代码

go 复制代码
func lengthOfLongestSubstring(s string) int {
	charMap := make(map[rune]int)
	start, maxlen := 0, 0
	for i, char := range s {
		if idx, ok := charMap[char]; ok && idx >= start {
			start = idx + 1
		}
		charMap[char] = i
		maxlen = max(maxlen, i-start+1)
	}
	return maxlen
}

func max(a, b int) int {
	if a > b {
		return a
	}
	return b
}
相关推荐
小程序设计4 小时前
【机械设计】磁粉检测机器人的设计与验证
算法·机器人
Navigator_Z4 小时前
LeetCode //C - 1220. Count Vowels Permutation
c语言·算法·leetcode
吃好睡好便好4 小时前
判断函数的使用
学习·算法·matlab·生活·判断函数
2601_956121974 小时前
线性DP(入门)
c++·算法·动态规划
feilieren4 小时前
leetcode - 389. 找不同
算法·leetcode
挽星安4 小时前
2026/8/29
数据结构·算法
positive_zpc4 小时前
进阶数据结构图——最短路径(二)
数据结构·算法·图论·最短路径
ttwuai5 小时前
Go 后台管理系统组件库文档怎么写,才不会坑后续维护?
开发语言·javascript·golang
positive_zpc5 小时前
进阶数据结构图——最小生成树(一)
数据结构·算法·图论
码完就睡5 小时前
数据结构——遍历二叉树
数据结构·算法