专栏文章

P12592 重生有惊喜 题解

P12592题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@mip7p6zh
此快照首次捕获于
2025/12/03 07:31
3 个月前
此快照最后确认于
2025/12/03 07:31
3 个月前
查看原文

题目大意

这一题很简单,先看题目
题目的意思是说要求变换字母顺序,使得变换后的字符串成为回文串

做题思路

我们可以先用一个字符桶数组来保存原字符串的每一个字符出现的次数,然后判断每个字符出现的次数mod2==0mod 2==0 如果mod2==1mod 2==1 累加次数,如果mod2==1mod 2==1只有1次,说明要把这个字符放在原字符串的正中间

AC代码

CPP
#include<bits/stdc++.h>
using namespace std;
int main(){
	//freopen(".in","r",stdin);
	//freopen(".out","w",stdout);
	//ios::sync_with_stdio(false);
	//cin.tie(0);
	//cout.tie(0);
	int T;
	cin>>T;
	while(T--){//T组数据
		string a;
		cin>>a;
		int t[30]={0};
		for(int i=0;i<a.size();i++){
			t[a[i]-'a']++;//统计字母出现次数
		}
		int flag=0;
		for(int i='a';i<='z';i++){
			if(t[i-'a']%2){//累加和
				flag++;
			}
		}
		if(flag<=1) puts("Yes");//是回文串
		else puts("No");
	}
	return 0;
}

评论

0 条评论,欢迎与作者交流。

正在加载评论...