不用那麼麻煩,看看這種思路
一個字串如果是迴文,就是兩端相對於中心位置對稱
如
123321
123-對稱點-321
12321
12---3(對稱點)--21
只需要拿左邊這半邊的字元,與右邊的比較,如果一樣,就是迴文
#include<stdio.h>
#include"string.h"
voidmain()
{
intx,i;
charst1[100]={0};
gets(st1);
x=strlen(st1);
for(i=0;i<=x/2;i++)///比到一半就不比了,原理已講
if(st1[i]!=st1[x-i-1])///這就是比較兩端的字元
break;//不是迴文
}
if(i>x/2)///沒執行break,就是迴文
printf("YES");
else
printf("NO");
不用那麼麻煩,看看這種思路
一個字串如果是迴文,就是兩端相對於中心位置對稱
如
123321
123-對稱點-321
12321
12---3(對稱點)--21
只需要拿左邊這半邊的字元,與右邊的比較,如果一樣,就是迴文
#include<stdio.h>
#include"string.h"
voidmain()
{
intx,i;
charst1[100]={0};
gets(st1);
x=strlen(st1);
for(i=0;i<=x/2;i++)///比到一半就不比了,原理已講
{
if(st1[i]!=st1[x-i-1])///這就是比較兩端的字元
{
break;//不是迴文
}
}
if(i>x/2)///沒執行break,就是迴文
printf("YES");
else
printf("NO");
}