栈
直接看实例吧,用栈判断回文
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
30
31
32
33
34
35
36
37
381 #include <stdio.h>
2 #include <string.h>
3 int main() {
4 char a[101], s[101];
5 int i, len, mid, next, top;
6
7 gets(a); //读入一行字符串
8 len = strlen(a); //求字符串的长度
9 printf("%d\n", len);
10 mid = len/2-1; //求字符串的中点
11 printf("%d\n", mid);
12
13 top = 0; //栈的初始化
14 //将mid前的字符依次入栈
15 for (i = 0; i <= mid; i++)
16 s[++top] = a[i];
17
18 //判断字符串的长度是奇数还是偶数,并找出需要进行字符匹配的起始下标
19 if (len%2 == 0)
20 next = mid+1;
21 else
22 next = mid+2;
23
24 //开始匹配
25 for (i = next; i <= len-1; i++) {
26 if (a[i] != s[top])
27 break;
28 top--;
29 }
30
31 //如果top的值为0,则说明栈内所有的字符都被一一匹配了
32 if (top == 0)
33 printf("YES");
34 else
35 printf("NO");
36
37 return 0;
38 }
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 怀民亦未寝。!