小弟初学《数据结构》,跪求一道,算法设计题:
答案:2 悬赏:0 手机版
解决时间 2021-07-29 06:21
- 提问者网友:蔚蓝的太阳
- 2021-07-29 02:18
回文是指正读反读均相同的字符,如“abba”和“abdba”均是回文,但是“good”不是回文,试写一个算法判定给定的字符向量是否回文。(将一半字符先入栈;利用数据结构的进出栈编写算法
最佳答案
- 五星知识达人网友:话散在刀尖上
- 2021-07-29 02:57
#include <stdio.h>
#include <string.h>
int stack[1024];
int* sp = stack;
#define push(n) {*sp++ = n;}
#define pop() (*--sp)
#define empty() (sp == stack)
int main()
{
char a[100];
int i, n;
gets(a);
n = strlen(a);
for(i = 0; i < n / 2; ++i)
push(a[i]);
if(n & 1) ++i;
while(!empty() && pop() == a[i++]);
puts(empty() ? "是回文" : "不是回文");
getchar();
}
#include <string.h>
int stack[1024];
int* sp = stack;
#define push(n) {*sp++ = n;}
#define pop() (*--sp)
#define empty() (sp == stack)
int main()
{
char a[100];
int i, n;
gets(a);
n = strlen(a);
for(i = 0; i < n / 2; ++i)
push(a[i]);
if(n & 1) ++i;
while(!empty() && pop() == a[i++]);
puts(empty() ? "是回文" : "不是回文");
getchar();
}
全部回答
- 1楼网友:未来江山和你
- 2021-07-29 03:46
#include <stdio.h> #include <string.h>
int main() { int i = 0; char *p,*q; char str[1024]; scanf("%s",str); p = str; q = str + strlen(str) -1 ; while(p != q) { if(*p++!=*q--) { i = 1; printf("不是回文数.\n"); } } if(i==0) { printf("是回文数.\n"); } return 0; }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯