标签:
所谓回文字符 串就是指正读反读均相同的字符序列,如“席主席”、“记书记”、“aha”和“ahaha”均是回 文,但“ahah”不是回文。
通过栈这个数据结构我们将很容易判断一个字符串是否为回文。
1 // 4. 判断回文字符串 2 char a[9], s[9]; 3 int i, len, mid, next, top; 4 5 gets(a); // 读入一行字符串 6 // a = "qwerewq"; 7 len = strlen(a); 8 mid = len / 2 - 1; // 求字符串中点 9 10 top = 0; // 栈的初始化 11 for(i = 0; i <= mid; i++){ 12 s[++top] = a[i]; 13 14 // 判断字符串的长度是基数还是偶数, 并找出需要进行字符匹配的起始下标 15 if(len % 2 == 0){ 16 next = mid + 1; 17 }else{ 18 next = mid + 2; 19 } 20 21 // 开始匹配 22 for(i = next; i <= len - 1; i++){ 23 if (a[i] != s[top]) { 24 break; 25 } 26 top--; 27 } 28 29 // 如果top值为0, 则说明栈内所有字符都被一一匹配了 30 if(top == 0){ 31 printf("YES"); 32 }else{ 33 printf("NO"); 34 } 35 getchar();getchar(); 36 }
标签:
原文地址:http://www.cnblogs.com/guangleijia/p/5163620.html