题解 | 最小循环节
最小循环节
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]) // 输出结果
}
