数据结构课后习题_栈应用_回文判断(c++)

困得睡不早 2022-04-22 17:13:18

设正读和反读都相同的字符序列为“回文”,如“abbabba”、“abcba”等。试写一个能 识别读入的以“@”为结束符的字符序列是否是回文的函数。

具体实现如下:

void jugde(){
	char ch;
	int tmp;//计数器 
	stack<char> T;
	cin>>ch;
	while(ch!='@'){
		tmp++;
		T.push(ch);
		cin>>ch;	
	}
	stack<char> S;//另外用一个栈空间,对半比较 
	for(int i=0;i<tmp/2;i++){
		S.push(T.top());
		T.pop();
	}	
	if(tmp%2) T.pop();//当含有奇数个元素时,应该将最中间的元素出栈 
	while(!S.empty()){
		if(S.top()!=T.top()){
			cout<<"不是回文";
			return ;
		}		
		S.pop();T.pop();
	}
	cout<<"是回文"; 
}

需要的头文件:

#include <iostream>
#include <stack>

 

...全文
1396 回复 打赏 收藏 举报
写回复
回复
切换为时间正序
请发表友善的回复…
发表回复
相关推荐
发帖
IT学习交流
加入

1.0w+

社区成员

本社区是一个IT基础知识以及前沿科技的分享学习交流社区,欢迎大家加入到这个社区中来,共同学习专业的IT知识,相互交流分享,在与大家交流的同时提高自己的专业水平,期待您的加入哦!
社区管理员
  • hhh江月
帖子事件
编辑了帖子
2022-04-22 17:16
编辑了帖子 (查看)
2022-04-22 17:15
编辑了帖子 (查看)
2022-04-22 17:14
编辑了帖子 (查看)
2022-04-22 17:14
创建了帖子 (查看)
2022-04-22 17:13
社区公告

1、首先欢迎大家加入本社区!

2、这是一个IT基础知识以及前沿科技的分享的学习交流社区;

3、希望大家在社区活动的时候注意一下文明发帖;

4、欢迎大家积极参与社区活动,积极发帖子互动;

5、欢迎大家相互评论、点赞相互交流经验,共同进步;

6、活跃的成员会有特殊的福利哦;

7、让我们一同努力,共同提高社区的影响力!!!