在一行上输入一个长度为
且为偶数,仅由小写字母构成的字符串
,代表待修改的字符串。
输出一个整数,表示将
修改为双生串的最小修改次数。
popipa
3
在这个样例中,将
修改为
是其中一个最优解。
aaaa
0
在这个样例中,给定的字符串已经是双生串,不需要修改。
package main
import (
"fmt"
)
func main() {
var s string
fmt.Scan(&s)
n := len(s)
s1 := s[:n/2]
s2 := s[n/2:]
set1 := make(map[rune]int)
set2 := make(map[rune]int)
for _, c := range s1 {
set1[c]++
}
for _, c := range s2 {
set2[c]++
}
max1 := maxValueInMap(set1)
max2 := maxValueInMap(set2)
fmt.Println(n-max1-max2)
}
func maxValueInMap(m map[rune]int) int {
max := 0
for _, v := range m {
if v > max {
max = v
}
}
return max
}