summaryrefslogtreecommitdiff
path: root/introductory_problems/palindrome_reorder.cpp
diff options
context:
space:
mode:
authorJack Sangdahl <[email protected]>2025-02-14 12:03:50 -0700
committerJack Sangdahl <[email protected]>2025-02-14 12:03:50 -0700
commit06922738b735ac453245e72621c54a8ccea4f3c6 (patch)
tree2baec7d486a2c4dbcc4f3e84b21bd2c4d0344bce /introductory_problems/palindrome_reorder.cpp
parent644de4dfb5fc7f3e7884621e3dfe5af824c60c30 (diff)
downloadcses-06922738b735ac453245e72621c54a8ccea4f3c6.tar.gz
cses-06922738b735ac453245e72621c54a8ccea4f3c6.zip
1755. palindrome reorder
Diffstat (limited to 'introductory_problems/palindrome_reorder.cpp')
-rw-r--r--introductory_problems/palindrome_reorder.cpp28
1 files changed, 28 insertions, 0 deletions
diff --git a/introductory_problems/palindrome_reorder.cpp b/introductory_problems/palindrome_reorder.cpp
new file mode 100644
index 0000000..8e0a602
--- /dev/null
+++ b/introductory_problems/palindrome_reorder.cpp
@@ -0,0 +1,28 @@
+// 1755. Palindrome Reorder
+#include <bits/stdc++.h>
+using namespace std;
+
+int main() {
+ static char s[1000001];
+ scanf("%s", s);
+ static int n = strlen(s), odd = -1, freq[26];
+ for (int i = 0; i < n; i++)
+ freq[s[i] - 'A']++;
+ for (int i = 0; i < 26; i++) {
+ if (freq[i] & 1) {
+ if (odd != -1) {
+ printf("NO SOLUTION\n");
+ } else {
+ odd = i;
+ }
+ }
+ }
+ for (int i = 0; i < 26; i++)
+ for (int j = 0; j < freq[i] / 2; j++)
+ printf("%c", i + 'A');
+ if (odd != -1)
+ printf("%c", odd + 'A');
+ for (int i = 25; i >= 0; i--)
+ for (int j = 0; j < freq[i] / 2; j++)
+ printf("%c", i + 'A');
+}