栈–判断回文字符串
思路
将字符串的前半部分依次压栈,再依次出栈后和字符串后半部分一一比较。
代码
#include <stdio.h>
#include <string.h>
#define LEN 8
int main()
{
char a[LEN] = "abcddcba";
char s[LEN];
int i, len, mid, next, top;
len = LEN;
mid = len/2;
if (len%2 == 0) {
next = mid;
} else {
next = mid + 1;
}
top = 0;
for (i = 0; i < mid; i++) {
s[++top] = a[i];
}
for (i = next; i < len; i++) {
if (a[i] != s[top]){
break;
}
top--;
}
if (top == 0) {
printf("YES");
} else {
printf("NO");
}
return 0;
}