当前位置: 首页 > news >正文

Palindrome Reorder

题目描述

Given a string, your task is to reorder its letters in such a way that it becomes a palindrome (i.e., it reads the same forwards and backwards).

输入

The only input line has a string of length n(1\leqslant n\leqslant 10^6) consisting of characters A–Z.

输出

Print a palindrome consisting of the characters of the original string. You may print any valid solution. If there are no solutions, print "NO SOLUTION".

样例输入
AAAACACBA
样例输出
AACABACAA
AC代码
#include<bits/stdc++.h>
#define ll long long
using namespace std;
string s;
ll len,cnt[26],odd_count,total;
int main(){ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);cin>>s;len=s.size();total=len;string ans="";char mid='\0';for(ll i=0;i<len;i++){cnt[s[i]-'A']++;}for(int i=0;i<26;i++){if(cnt[i]%2){odd_count++;total-=cnt[i];}}if(odd_count>1){cout<<"NO SOLUTION\n";return 0;}else{ans.reserve(total/2);for(int i=0;i<26;i++){ans.append(cnt[i]/2,'A'+i);if(cnt[i]%2){mid='A'+i;}}string str=ans;reverse(str.begin(),str.end());if(odd_count){cout<<ans<<mid<<str<<"\n";}else{cout<<ans<<str<<"\n";}}return 0;
}
WA代码(为甚么啊)

#include<bits/stdc++.h>
#define ll long long
using namespace std;
string s;
ll len,cnt[26],odd_count,total;
int main(){ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);cin>>s;len=s.size();total=len;string ans="",mid="";for(ll i=0;i<len;i++){cnt[s[i]-'A']++;}for(int i=0;i<26;i++){if(cnt[i]%2){odd_count++;total-=cnt[i];}}if(odd_count>1){cout<<"NO SOLUTION\n";return 0;}else{ans.reserve(total/2);for(int i=0;i<26;i++){if(cnt[i]&&cnt[i]%2==0){ans.append(cnt[i]/2,'A'+i);}else if(cnt[i]%2){mid.reserve(cnt[i]);mid.append(cnt[i],'A'+i);}}ans[ans.size()]='\0';mid[mid.size()]='\0';string str=ans;str[str.size()]='\0';reverse(str.begin(),str.end());if(odd_count){cout<<ans<<mid<<str<<"\n";}else{cout<<ans<<str<<"\n";}}return 0;
}

http://www.dtcms.com/a/298476.html

相关文章:

  • 腾讯研究院:AI Coding引发编程范式革命
  • 微信小程序动态切换窗口主题色
  • 多智能体强化学习入门:从基础到 IPPO 算法—强化学习(20)
  • 2507C++,C++协程的发送者
  • 浅谈生成式AI语言模型的现状与展望
  • haproxy七层代理(原理)
  • SawtoothSoftware 模板注入漏洞复现(CVE-2025-34300)
  • 8.异常处理:优雅地处理错误
  • ISIS高级特性GR
  • Springboot+activiti启动时报错XMLException: Error reading XML
  • 优思学院|QC七大手法之一的检查表应如何有效使用?
  • 【unitrix】 6.15 “非零非负一“的整数类型(NonZeroNonMinusOne)特质(non_zero_non_minus_one.rs)
  • 亚马逊广告策略:如何平衡大词和长尾词的效果?
  • 倩女幽魂手游代言人杨洋携剑仙入世 仙姿临世锋芒毕露
  • docker-compose:未找到命令的检查步骤和修复
  • ABP VNext + OData:实现可查询的 REST API
  • 服务端处于 TIME_WAIT 状态的 TCP 连接,收到相同四元组的 SYN 后会发生什么?详解
  • HCIP上HCIA复习静态综合实验
  • 移动端设备能部署的llm
  • 系统日志与用户信息绑定实现日志跟踪
  • 前端基础知识Vue系列 - 27(Vue项目中如何解决跨域)
  • 从 SQL Server 到 KingbaseES V9R4C12,一次“无痛”迁移与深度兼容体验实录
  • js基础概念-1
  • 牛客NC16660 [NOIP2004]FBI树(递归 + 二叉树后序遍历)
  • electron中IPC 渲染进程与主进程通信方法解析
  • 常用设计模式系列(十二)—享元模式
  • 如何在 FastAPI 中玩转 GraphQL 和 WebSocket 的实时数据推送魔法?
  • C++中使用Essentia实现STFT/ISTFT
  • git 连接GitHub仓库
  • 强化学习之策略熵坍塌优化-clip conv kv conv