tips:只需要完成函数,并且返回最终结果就可以了,不需要输入和输出!
个人代码理解:
int is_palindrome(char* str) {
int count = 0,i,t = 0,h,flat=0;
char b[1000]; //这里设定判断的字符串长度最长为1000
for(i=0 ;str[i] != '\0';i++) //先确定字符串的长度count
{
count++;
b[i] = str[i]; //将str[i]字符串传入数组b[i]
}
h=count-1; //h就是数组的下标总数(比如这个数组合str[2] 他的元素个数是3个,数组下标为元素个数(3)-1 = 2)
while(h>t) //循环的判断数组的前后是否一致,判断结束的时候h>t条件不成立说明对比完成
{
if(b[h--] == str[t++]){ flat++; } //每判断一次之后就flat++
}
if(flat>=count/2){ return 1; } //防止有类似情况(lor de rol) 一部分相同,另一部分不相同 这里相 //同的次数flat =3,不满足flat>=count/2
else
return 0;
}
最终结果