using
System;
using
System.Collections.Generic;
class
GFG {
static
String getPalindrome(
string
str)
{
Dictionary<
char
,
int
> counting
=
new
Dictionary<
char
,
int
>();
foreach
(
char
ch
in
str.ToCharArray())
{
if
(counting.ContainsKey(ch)) {
counting[ch] = counting[ch] + 1;
}
else
{
counting.Add(ch, 1);
}
}
int
oddCount = 0;
char
oddChar =
'$'
;
foreach
(KeyValuePair<
char
,
int
> itr
in
counting)
{
if
(itr.Value % 2 != 0) {
oddCount++;
oddChar = itr.Key;
}
}
if
(oddCount > 1
|| oddCount == 1 && str.Length % 2 == 0) {
return
"NO PALINDROME"
;
}
string
firstHalf =
""
, lastHalf =
""
;
foreach
(KeyValuePair<
char
,
int
> itr
in
counting)
{
string
ss =
""
;
for
(
int
i = 0; i < itr.Value / 2; i++) {
ss += itr.Key;
}
firstHalf = firstHalf + ss;
lastHalf = ss + lastHalf;
}
return
(oddCount == 1)
? (firstHalf + oddChar + lastHalf)
: (firstHalf + lastHalf);
}
public
static
void
Main()
{
string
str =
"mdaam"
;
Console.WriteLine(getPalindrome(str));
}
}