Advertisement
liwgfr

Untitled

Jun 14th, 2021
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.48 KB | None | 0 0
  1. import java.util.Map;
  2. import java.util.Scanner;
  3. import java.util.TreeMap;
  4.  
  5. public class Main {
  6.     public static void main(String[] args) {
  7.        Scanner in = new Scanner(System.in);
  8.        int n = in.nextInt();
  9.        String s = in.next();
  10.        if (n == 1) {
  11.            System.out.println(s);
  12.            System.exit(0);
  13.        }
  14.        TreeMap<Character, Integer> map = new TreeMap<>();
  15.        for (int i = 0; i < n; i++) {
  16.             if (map.containsKey(s.charAt(i))) {
  17.                 map.put(s.charAt(i), map.get(s.charAt(i)) + 1);
  18.             } else {
  19.                 map.put(s.charAt(i), 1);
  20.             }
  21.        }
  22.        int oddCnt = 0;
  23.        char oddChar = 0;
  24.        for (Map.Entry<Character, Integer> entry : map.entrySet()) {
  25.            if (entry.getValue() % 2 != 0) {
  26.                oddCnt++;
  27.                oddChar = entry.getKey();
  28.            }
  29.        }
  30.        if (oddCnt > 1 || oddCnt == 1 && s.length() % 2 == 0) {
  31.            System.out.println(-1);
  32.            System.exit(0);
  33.        }
  34.        StringBuilder first = new StringBuilder();
  35.        StringBuilder second = new StringBuilder();
  36.        for (Map.Entry<Character, Integer> entry : map.entrySet()) {
  37.            String l = String.valueOf(entry.getKey()).repeat((int) Math.floor(entry.getValue() / 2.0));
  38.            first.append(l);
  39.            second.insert(0, l);
  40.        }
  41.         System.out.println(((oddCnt == 1) ? (first.toString() + oddChar + second) : (first.toString() + second)));
  42.     }
  43. }
  44.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement