#include <stdio.h>
#include <string.h>
#define false 0
#define true 1
int Use(char *str) {
int len = strlen(str);
int mid = (len % 2 == 0)?(len / 2) : (len / 2 + 1);
int i;
for (i = 0; i < mid; i++) {
if (str[i] != str[len - 1 - i])
return false;
}
return true;
}
int main() {
printf("%d %d %d %d\n",
Use("abcdcba"),
Use("abcddcba"),
Use("abcdefg"),
Use("abcddcab")
);
return 0;
}
追问大神你这个运行出来不是我要的结果
追答原理才是最主要的,不是么?
追问那能不能麻烦做下注解,就是这一条代码是干嘛的,这样,谢谢了
追答int Use(char *str) {
int len = strlen(str); //求目标串长
int mid = (len % 2 == 0)?(len / 2) : (len / 2 + 1); //判断串长是偶数还是奇数
int i;
for (i = 0; i < mid; i++) {
if (str[i] != str[len - 1 - i]) //以中点为界,首尾对应位置判断是否一致。
return false; //不一致返回false
}
return true; // 完全一致返回true
}