题解 | 最小循环节

最小循环节

https://www.nowcoder.com/practice/761f78551b854037abe412c2de615c05

package main

import (
	"fmt"
)

func main() {
	var s string
	fmt.Scanln(&s) // 读取输入字符串
	len := len(s)
	dp := make([]int, len)
	dp[0] = 1

	// 使用 map 来模拟 Java 中的 Set
	set := make(map[byte]bool)
	set[s[0]] = true

	for i := 1; i < len; i++ {
		c := s[i]
		if set[c] {
			dp[i] = dp[i-1]
		} else {
			dp[i] = dp[i-1] + 1
			set[c] = true
		}
	}

	fmt.Println(dp[len-1]) // 输出结果
}

全部评论

相关推荐

牛奶配面包:第二个经典博弈题目吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务