C - Swap to Palindrome

2 secs 1024 MB
matcharate12's icon matcharate12

Story

🌲

matcharate君とtearate君はたくさんの宝石を片手に満足気な表情で、茶屋のお仕事に戻りました。今度は、この店の看板を考えたいと思っています。
matcharate君の考え方としては、この茶屋は奇抜な内装になっているので、それに合わせるように看板名も回文にしたいと思いました。

しかしtearate君は、さすがにそれだとお店の信用が落ちると思ったので、看板名ではなくお店の看板メニュー名として考えました。
tearate君はとりあえず文字を沢山書いてみましたが、この文字を並び替えて回文にすることはできるのでしょうか?

問題

長さ NN の文字列 SS が与えられます。SS に対し文字を好きな順番に並び替えることによって、SS を回文にすることはできますか?

回文とは?

"文字列 TT が回文である"とは、TTii 文字目を TiT_i とすると T1T2TN=TNTN1T2T1T_1T_2…T_N=T_NT_{N-1}…T_2T_1 が成り立つことを言います。
例えば T=T= php, akasaka などは回文です(反対に読んでも TT と一致する)が、T=T= cpp, green などは回文ではありません。

入力

入力は以下の形式で与えられる。

SS

制約

  • 1N1051\le N\le 10^5
  • SS の長さは NN である
  • SS は英小文字からなる

出力

回文にすることができるなら Yes 、できないなら No を出力せよ。

入出力例

入力例1
tearate
出力例1
Yes

例えば tearaet と並べ替えると、これは回文となります。

入力例2
green
出力例2
No

どう並び替えても回文にすることはできません。

入力例3
ababa
出力例3
Yes

最初から回文になっています。

入力例4
q
出力例4
Yes

11 文字なら並び替えるも何も回文です。

Submit


Go (1.21)