在一行上输入一个长度为
且为偶数,仅由小写字母构成的字符串
,代表待修改的字符串。
输出一个整数,表示将
修改为双生串的最小修改次数。
popipa
3
在这个样例中,将
修改为
是其中一个最优解。
aaaa
0
在这个样例中,给定的字符串已经是双生串,不需要修改。
from collections import Counter st = input() mid = len(st)//2 st1 = st[:mid] st2 = st[mid:] st1_list = sorted(Counter(st1).items(), key=lambda d: d[1], reverse=True) st2_list = sorted(Counter(st2).items(), key=lambda d: d[1], reverse=True) c = len(st)-st1_list[0][1]-st2_list[0][1] print(c)
s = input().strip()
if not (1<=len(s)<=2*10**5 and len(s)%2==0 and all(si.isalpha() and si.islower() for si in s)):
print('请输入有效长度内且为偶数,仅由小写字母构成的字符串s')
else:
shalf = len(s)//2
fores = s[:shalf]
backs = s[shalf:]
forec = {}
backc = {}
for si in fores:
forec[si] = forec.get(si, 0) + 1
num = shalf - max(forec.values())
for si in backs:
backc[si] = backc.get(si, 0) + 1
num += shalf - max(backc.values())
print(num)
s=input().strip()
half=len(s)//2
dic_front={}
for char in s[:half]:
if char in dic_front:
dic_front[char]+=1
else:
dic_front[char]=1
dic_back={}
for char in s[half:]:
if char in dic_back:
dic_back[char]+=1
else:
dic_back[char]=1
max_front=0
if dic_front:
max_front=max(dic_front.values())
max_back=0
if dic_back:
max_back=max(dic_back.values())
print(2*half-max_front-max_back)