专栏文章

题解:P12592 重生有惊喜

P12592题解参与者 2已保存评论 2

文章操作

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

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

思路

原字符串能被重排为一个回文串,当且仅当原串中只有零个或一个小写字母的数量是奇数。
依据这个思路记录每个小写字母出现个数后判断奇数个数即可。
注意多测清空,时间复杂度 O(n)O(n)

代码

CPP
#include<bits/stdc++.h>
using namespace std;
int a[10005];
signed main()
{
	int T;
	cin>>T;
	while(T--)
	{
		string st;
		cin>>st;
		int n=st.size();
		st=' '+st;
		for(int i=1;i<=n;i++)
			a[(int)(st[i]-'a')]++;
		int flag=0;	
		for(int i=0;i<=25;i++)
			if(a[i]%2==1)
			flag++;		
		if(flag>1)
			cout<<"No\n";
		else
			cout<<"Yes\n";
		for(int i=0;i<=255;i++)
			a[i]=0;
	}
	return 0;
 }

评论

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

正在加载评论...