P12592题解

题目传送门

思路

由于题目中说了可以任意交换两个字符的位置,我们只需要判断这个字符串是否满足回文串的条件即可。

代码:

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
int a[30];
int main(){
	int T;
	cin>>T;
	while(T--){
		fill(a,a+29,0);//多测要清空
		string s;
		cin>>s;
		for(int i=0;i<s.size();i++){
			a[int(s[i]-96)]++;//统计a~z每个字符的个数
		}
		if(s.size()%2==1){//若字符串长度为奇数
			int flag=0;//代表字符串中每个字符的数量为奇数的个数
			for(int i=1;i<=26;i++){
				if(a[i]%2) flag++;//若为奇数,flag++
			}
			if(flag!=1) cout<<"No"<<endl;//由于长度为奇数的回文串中间会有一个单独的字符串,所以判断flag是否等于1
			else cout<<"Yes"<<endl;
		}else{
			int flag=0;//同样意思
			for(int i=1;i<=26;i++){
				if(a[i]%2) flag++;
			}
			if(flag!=0) cout<<"No"<<endl;//由于长度为偶数的回文串每个字符都两两相对,所以判断flag是否等于0
			else cout<<"Yes"<<endl;
		}
	}
	
	return 0;
} 
相关推荐
Buke..4 分钟前
【APP 逆向】哔哩哔哩 sign 参数逆向(下):OLLVM 混淆还原 sign 算法
java·javascript·爬虫·python·算法
闲研随记37 分钟前
【文献阅读 ICLR 2026】RL算法:DECS
算法·llm·强化学习·iclr·rl
量化小c1 小时前
一行代码查 BTCUSDT 和 AAPL 最新价?QuantDash 统一多市场实时行情接口实战
后端·算法·github
沙盘客1 小时前
AFSIM 官方案例库全景与解读方法论
c++·经验分享·后端
机器人梦想家1 小时前
具身机器人视觉服务的异步回调与并发控制
数据库·算法·机器人
_wxd6662 小时前
STL-stack与queue与priority_queue(容器适配器)
c++
我命由我123452 小时前
人脸识别 - 人脸识别选帧
java·人工智能·python·算法·安全·java-ee·人脸识别
时针滴滴答啊2 小时前
最大子数组和
算法·leetcode·职场和发展
zh路西法3 小时前
【玩转VLA具身智能机械臂】(二):MoveIt2 运动规划——架构、配置与 C++ 上手
c++·机械臂·路径规划·vla·planner·moveit2
五月底_3 小时前
LIS算法
python·算法·最长子序列