0
点赞
收藏
分享

微信扫一扫

判断回文(STL实现)

颜路在路上 2022-04-14 阅读 203
数据结构

回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。试写一个程序判定给定的字符向量是否为回文,用栈实现。(提示:将一半字符入栈)

输入格式:

输入任意字符串。

输出格式:

若字符串是回文,输出:xxxx是回文。
若字符串不是回文,输出:xxxx不是回文。

输入样例:

abba

输出样例:

abba是回文。

输入样例:

abdba

输出样例:

abdba是回文。

输入样例:

good

输出样例:

good不是回文。

题目说要  用栈实现。(提示:将一半字符入栈)  。

这个方法是刚刚在百度的时候看见的,之前很拒绝stl,可能就是个人比较懒,但是看了用链栈实现回文的时候,才发现STL有多香了。

首先头文件  : #include <stack>

#include <bits/stdc++.h>
#include <stack>
using namespace std;
int main()
{
	stack<char>s;
	string a;
	cin>>a;
	for(int i=0;i<a.size();i++)s.push(a[i]);//入栈
	string b;
	while(!s.empty())
	{
		b+=s.top();
		s.pop();
	} 
	if(a==b)cout<<a<<"是回文。";
	else cout<<a<<"不是回文。"; 
}

s.push():入栈;

s.empty():  判断栈是否为空;

s.top():  栈顶端元素值;

s.pop():  弹出栈顶元素;

举报

相关推荐

0 条评论