栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

【题解】CF600C Make Palindrome

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【题解】CF600C Make Palindrome

回文串有一个特性:

  • 长度为奇数:中间是单个的,其他成对向外扩散。(只有一个字母为奇数个)
  • 长度为偶数:成对向外扩散。

所以要尽量两两凑成一样的。令 a n s ans ans 数组为最终答案要用到的字符。

统计在原字符串中每个字母出现的个数,每出现两个一样的直接加到 a n s ans ans 里;其他不一样的,需要改变某一些字母使得他们和其他字母能保持一致,再加入 a n s ans ans .

又因为要字典序最小,所以 a n s ans ans 需要在处理一下,最终输出 a n s 2 ans2 ans2 .

#include
using namespace std;
string s;
int ct=0;
int cnt[27];
char ans[200005];
char ans2[200005];
int main()
{
	cin>>s;
	for(int i=0;i
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/690995.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号