import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int T=sc.nextInt();
sc.nextLine();
for (int k=1;k<=T;k++){
char[] c=sc.next().toCharArray();
boolean b=true;
//判断回文
for (int i=0;i<c.length/2;i++){
if (c[i]!=c[c.length-i-1]){
b=false;
break;
}
}
if (b){ //如果是回文
Set<Character> s=new HashSet<>();
for (int i=0;i<=c.length/2;i++)
s.add(c[i]);
System.out.println("Case #"+k+":"+"YES "+s.size());
}
else { //如果不是
int ans=0;
for (int i=0;i<c.length/2;i++){
if (c[i]!=c[c.length-i-1])
ans++;
}
System.out.println("Case #"+k+":"+"NO "+ans);
}
}
}
}
题目链接如下
https://nanti.jisuanke.com/t/A1051
样例可以过,但是答案显示是错误,格式上调整过了一次但也没过,应该不是输出格式问题,是不是修改回文次数没有保证最小,应该如何做,不太懂这个思路
将多次结果存数组中,最后再一次性输出。