import
java.util.*;
public
class
Main {
public
static
int
minPalindromeCuts(String str) {
Map<Character, Integer> m =
new
HashMap<>();
for
(
int
i =
0
; i < str.length(); i++) {
char
ch = str.charAt(i);
if
(!m.containsKey(ch))
m.put(ch,
1
);
else
m.put(ch, m.get(ch) +
1
);
}
List<Character> even =
new
ArrayList<>();
List<Character> odd =
new
ArrayList<>();
for
(Map.Entry<Character, Integer> entry : m.entrySet()) {
char
ch = entry.getKey();
int
count = entry.getValue();
if
(count %
2
!=
0
) {
odd.add(ch);
entry.setValue(count -
1
);
}
}
for
(Map.Entry<Character, Integer> entry : m.entrySet()) {
char
ch = entry.getKey();
int
count = entry.getValue();
if
(count %
2
==
0
) {
for
(
int
i =
0
; i < count /
2
; i++)
even.add(ch);
}
}
if
(odd.size() <=
1
)
return
1
;
else
{
while
(odd.size() >
0
&& even.size() >
0
&& even.size() % odd.size() !=
0
) {
odd.add(even.get(even.size() -
1
));
odd.add(even.get(even.size() -
1
));
even.remove(even.size() -
1
);
}
return
odd.size();
}
}
public
static
void
main(String[] args) {
String str =
"aabaac"
;
System.out.println(minPalindromeCuts(str));
}
}