第4个测试点和第6个测试点一直出错,在加注释代码之前,第4和第6个测试点错误,下载了第4个测试点代码输入是2047个A,输出是1,于是我加了如下注释代码,结果第6个测试点错误了,修改代码和注释代码后输入2047个A,输出2047而不是1反而全AC了,这是什么原理
#include<cstring>
using namespace std;
int len;//记录数组长度
char s[100001]; //输入数组
int fun(int length){ //照镜子,假设照的是右面
//int flag1=0;
//for(int i=0; i<length-1; i++) //判断是否全都是相同的字符
//{
// if(s[i]!=s[i+1]) flag1=1; //说明不是都是相同字符串
//}
//if(flag1==0){ //是相同字符
// return 1;
//}
if(length%2!=0){ //如果不是偶数,即输出最短长度
return length;
}
int ban=length/2;
int flag=0;
for(int i=0; i<ban; i++){
if(s[i]!=s[length-i-1]){ //如果不相等
flag=1; //跳出循环
break;
}
}
if(flag==1){
return length;
}
else return fun(ban);
}
int main(){
scanf("%s",s);
len=strlen(s);
int ans=fun(len);
printf("%d",ans);
return 0;
}