这是一道经典的贪心题

首先先用列表去存储按长度分割的每一个子串

随后进行k次遍历,每次遍历各个子串的0,1……k - 1索引对应的字符,用字典进行出现次数的累加。因为要修改的总次数最小,依据贪心我们让每次遍历时修改的次数都最小,所以我们找到一次遍历中出现最多的那个字符让它保持不动,修改其余字符,每一次答案增加值就是 n / k - 该字符出现的次数

最后打印出答案ans

python代码:

n,k = map(int, input().split())
s = input()
l = []
t = int(n / k)
for i in range(t):
    l.append(s[i * k:i * k + k])
ans = 0
for i in range(k):
    dic = {}
    for j in l:
        dic[j[i]] = dic.get(j[i],0) + 1
    ans += t - max(dic.values())
print(ans)