题目描述
输入一个字母字符串和一个 k
值,你需要将其调整为:
- 字符串时回文字符串,如
abba
。 - 字符串每
k
个为一段,每一段都是相同的,如k
为3
,abcabcabc
满足条件。
调整可以将任意位置的字符改成任意字符,但调整一次记一次数。
问调整完毕需要进行多少次调整。
输入格式
第一行两个整数,用空格隔开,分别代表字符串长度和 k
。 第二行一行字符串,代表待调整的字符串。
输出格式
一个整数,表示调整的次数。
输入输出样例
输入
6 2
babbab
输出
2
说明/提示
babbab
改为 bbbbbb
,共 2
次调整。
n, k = map(int, input().split())
s = input()
a = [0 for i in range(26)]
ans = 0
for i in range(int(k / 2)):
for j in range(26):
a[j] = 0
for j in range(int(n / k)):
a[ord(s[j * k + i]) - ord('a')] += 1
a[ord(s[j * k + k - i - 1]) - ord('a')] += 1
max_cnt = max(a)
ans += n / k * 2 - max_cnt
for j in range(26):
a[j] = 0
if k % 2 != 0:
for i in range(int(n / k)):
a[ord(s[int(k / 2) + i * k]) - ord('a')] += 1
max_cnt = max(a)
ans += n / k - max_cnt
print(int(ans))