回文判断(一个栈是不是回文)
2017-05-18 16:49
134 查看
1、判断一个栈是不是回文?
思路:根据栈的特性,可以将字符串全部压入栈,再依次将各个字符出栈,从而得到原字符串的逆置串,将逆置串中的各个字符分别和原字符串中各个字符进行比较,如果完全一致,则为回文串。
下面代码使用自己创建的栈来实现:
思路:根据栈的特性,可以将字符串全部压入栈,再依次将各个字符出栈,从而得到原字符串的逆置串,将逆置串中的各个字符分别和原字符串中各个字符进行比较,如果完全一致,则为回文串。
#include<iostream> #include<stack> #include<cstring> using namespace std; int main() { stack<char> s1; char str[]="abdsdba"; //cin>>str; cout<<strlen(str)<<endl; for(int i=0;i<strlen(str);i++) s1.push(str[i]); //while(!s1.empty()) for(int i=0;i<strlen(str);i++) { int x=s1.top(); s1.pop(); if(x!=str[i]) { cout<<"不是回文。"<<endl; return 0; } } cout<<"回文数。"<<endl; return 0; }
下面代码使用自己创建的栈来实现:
#include <iostream> using namespace std; typedef struct{ char data[1000]; int top; }Stack; void Init_stack(Stack *s) { s->top=0; } int Push_stack(Stack *s,char x) { s->data[s->top]=x; s->top++; return 1; } int Pop_stack(Stack *s,char *x) { *x=s->data[s->top-1]; s->top--; return 1; } int main(int argc, char *argv[]) { char data[1000]; int i,j; Stack s; char x; Init_stack(&s); cin>>data; for(i=0;i<strlen(data);i++) { Push_stack(&s,data[i]); } for(i=0;i<strlen(data);i++) { Pop_stack(&s,&x); if(data[i]!=x) { cout<<"不是回文数"<<endl; return 0; } } cout<<"回文数"<<endl; return 0; }
相关文章推荐
- 判断一个数是不是回文数
- 【c语言】判断一个字符串是不是回文字符串
- 给出一个长度不超过1000的字符串,判断它是不是回文(顺读,逆读均相同)的
- python基础练习--判断一个数是不是回文数
- 小菜面试 String 篇 之 判断一个字符串是不是回文字符串
- 判断一个字符串是不是回文
- Java:计算回文数,输入一个五位正整数,使用数组判断它是不是回文数
- 让用户输入一个5位数(若不是5位数,则提示错误),判断它是不是回文数,输出判断结果。回文数:如12321是一个回文数,万位与个位相同,十位与千位相同。
- 72-回文数的判断,随意的输入一个int数字,判断是不是回文数字
- 判断一个字符串是不是回文?
- 用c语言实现 判断一个字符串是不是回文字符串
- Python学习——判断一个字符串是不是回文
- 14、JAVA 判断一个数/字符串是不是回文?实现字符串的逆序,如“abcd”变成“dcba”
- 判断一个字符串是不是回文
- 判断一个栈是不是回文
- 判断一个字符串是不是回文字符串
- 判断一个整数是不是回文
- 2.leetcode-判断一个数字是不是回文
- 判断一个字符串是不是对称(是不是回文字符串)
- 判断一个字符串是不是回文(C#解法)