有n个字符的字符串,判断字符串是否回文。 如: abcba和abccba都是回文;实验要求:
1.将输入的字符串放在单链表栈中;
2. 利用栈的入栈和出栈完成是否回文判断;
3. 应提供栈的基本操作,如栈的初始化、销毁、判断是否栈空等;
怎么用c++实现呢?
首先建立一个链表用来存放字符串,再建立一个链表用来模拟栈,并且把之前链表中的内容放入栈中,因为栈是先进后出的,所以拿存放字符串的链表的头数据和栈的尾数据进行一一比较,如果有一个不相等那么这个字符串就不是回文串,销毁和初始化这些都是使用链表必然用到的那么实现的思路是:
for (int i = 0; i < (strlen(s) + 1) / 2; i++)
stack.Push(s[i]);
bool b = true;
for (int i = (strlen(s) + 1) / 2 - 1; i < strlen(s); i++)
{
if (stack.Pop != s[i]) { b = false; break; }
}
cout << b ? "是" : "不是";
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。