数据结构269:判断字符串是否为回文(即是否有中心对称关系)
2020-06-04 07:54
295 查看
问题描述
输入一个字符串,判断其是否为回文(即是否有中心对称关系)。其中,abccba与abcba都可以被判断是回文,而abcfa就不是回文。
输入说明
输入字符串,判断是否回文。
输出说明
当字符串是回文的时候,输出right
当字符串不是回文的时候,输出wrong
输入样例
样例1:abcba
样例2:abccba
样例3:abcfa
样例4:11221
输出样例
样例1:right
样例2:right
样例3:wrong
样例4:wrong
#include<stdio.h> #include<stdlib.h> #include<string.h> #define MAXSIZE 100 typedef struct node { char elements[MAXSIZE]; int Top; }stack; stack *S; stack *setnull(stack *S) { S->Top=-1; return S; } char pop(stack *S) { char ret; if(S->Top==-1) return NULL; else { ret=S->elements[S->Top]; S->Top--; return ret; } } stack *push(stack *S, char e) { if(S->Top+1==MAXSIZE) return NULL; else { S->Top++; S->elements[S->Top]=e; return S; } } int correct(char String[],int len) { char c[100]; int i,l=0; setnull(S); for(i=0;i<len/2;i++) push(S,String[i]); for(i=0;i<len/2;i++) c[i]=pop(S); if(len%2==0) { for(i=0;i<len/2;i++) { if(c[i]==String[i+len/2]) l++; } } else { for(i=0;i<len/2;i++) { if(c[i]==String[1+i+len/2]) l++; } } if(l==len/2) return 1; else return 0; } int main() { int sign; int len; char str[100]; S=(stack*)malloc(sizeof(stack)); gets(str); len=strlen(str); sign=correct(str,len); if(sign) printf("right\n"); else printf("wrong\n"); return 0; }
相关文章推荐
- 数据结构——算法之(005)(判断字符串是否是对称的即(回文字符串))
- 设单链表中存放n个字符,试设计一个算法,使用栈判断该字符串是否中心对称
- @【数据结构】(栈 判断字符串回文)
- 数据结构——第三章算法设计题(2):判断是否为回文
- 两个字符串,判断这个两个字符串是否具有包含关系,测试数据有多组,请用循环读入。
- 用栈和队列判断输入字符串是否是回文(回文具有两边对称的性质)
- 数据结构通过链栈实现字符串中心对称匹配
- 判断一个字符串(超过80个字符)是否是回文结构(正序和逆序相同)
- 判断输入的字符串是否为回文(对称)字符串
- 【数据结构】单链表—判断一个链表是否形成了环形结构 — 快慢指针
- 用C语言指针编写判断是否为回文字符串的程序
- 数据结构——判断单链表是否有环
- C语言:判断一个字符串是否为回问字符串(回文字符串也是一个字符串,但是原字符串和字符串逆序之后一样,比如”abcba","cddc"就是回文字符串
- 数据结构——判断单链表是否有环
- 递归判断一个字符串是否回文
- php判断str字符串是否是xml格式数据的方法示例
- 判断一个字符串是否能够通过添加一个字符变成回文序列的方法
- 【学习点滴-数据结构-单链表】 判断单链表是否有环
- 数据结构实验之串二:字符串匹配(查看一个字符串是否为另一个字符串的子串)
- 判断链表是否为回文结构(时间、空间复杂度有要求)