String s = "tactcoaa";
// 输出:true(排列有"tacocat"、"atcocta",等等)
char[] chars = s.toCharArray();//将字符串转换为字符
int num = 0;
Map<String, Integer> map = new HashMap<>();
for (int i = 0; i < chars.length; i++) {
if(map.containsKey(chars[i]+"")){
Integer integer = map.get(chars[i] + "");
map.put(chars[i] + "",integer+1);
}else{
map.put(chars[i] + "",1);
}
}
int a = 0;
for (Map.Entry<String,Integer> val: map.entrySet()) {
if(val.getValue() %2 != 0){
a +=1;
}
}
if(a > 1){
System.out.println(false);
}
思路解析:把字符串转为字符,可以获取到ascii码,把ascii码作为key,出现的次数作为value,如果map中的值有大于1个是奇数,这个字符串就不是回文字符串。其实这一步也可以不用转,只要把字符串变成集合可以方便循环就行了。