#include
#include
int fun(char *s, int i, int len)
{
if (len / 2 == i)return 1;
if (*(s + i) == *(s + len - i - 1)) {
return fun(s, i + 1, len);
}
return 0;
}
int main() {
char s[255];
scanf("%s", s);
int len = strlen(s);
if (len <= 1) {
printf("输入字符串过短!");
}
else if(fun(s, 0, len))
{
printf("是回文");
}
else
{
printf("不是回文");
}
scanf("%s", s);
return 0;
}
我用递归实现了
可以用栈和队列来判断
如果出栈顺序和队列顺序一样就是回文
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include
#include
#defineMAX100
intreverse(chara[])
{
intn=strlen(a);
inti;
for(i=0;i{
if(a[i]!=a[n-i-1])
return0;
if(i==n-i-1)
return1;
}
}
intmain(){
chara[MAX];
while(scanf("%s",a)!=EOF)
{ if(reverse(a))
printf("YES\n");
else
printf("NO\n");
}
return0;
}
//测试平台自己测去