题解 | 包含不超过两种字符的最长子串
包含不超过两种字符的最长子串
https://www.nowcoder.com/practice/90d6a362fa7d4c519d557da797bb02ce
package main
import (
"fmt"
)
func main() {
var s string
fmt.Scan(&s)
fmt.Println(test3(s))
}
func test3(s string) int {
var hash = make(map[byte]int)
var ans int
var left, right = 0, 0
for right = range s {
for len(hash) > 2 {
hash[s[left]]--
if hash[s[left]] <= 0 {
delete(hash, s[left])
}
left++
}
hash[s[right]]++
if len(hash) <= 2 {
ans = max(ans, right-left+1)
}
}
return ans
}
func max(a, b int) int{
if a>b{
return a
}
return b
}
