思路:思维
首先考虑将 s[i] 与 s[j] 修改为相同,满足 0≤i,j≤n−1,i+j=n−1。
如果修改了 cnt 次:
- cnt>k ,则必然无法修改为回文串。
- cnt==k ,则恰好可以修改为回文串
- cnt<k 但是 n 是奇数,那么多的 k−cnt 次都用来修改最中间的字符即可
- cnt<k 但是 n 是偶数,那么多的 k−cnt 可以这么考虑:
题目内容
小红有一个字符串 s 。
现在小红给这个串恰好 k 次修改,问修改后的串是否可能是回文串?需要保证修改一个字符后,修改前后的字符不同。
输入描述
第一行,一个整数 T(1≤T≤10) ,表示 T 组数据。
接下来对于每组数据,
第一行,输入一个字符串 s(1≤len(s)≤106) 。
第二行,输入一个整数 k(1≤k≤106) ,表示修改次数。
输出描述
输出 Yes
表示修改后可以为回文串,输出 No
表示在 k 次修改后不可能为回文串。
样例
输入
4
aaa
1
bac
2
bbcc
3
cdefgh
2
输出
Yes
Yes
Yes
No