C语言使用栈和队列来判断回文
2020-02-15 08:02
1611 查看
C语言使用栈和队列来判断回文
算法思想
使用栈和队列来分别接受输入的字符串,利用栈先进后出,队列先进先出的特点进行前后比较来判断是否是回文
你可以使用双端队列更好的解决问题。
使用数组的话,代码又长又不高效
#include<stdio.h> #include<stack> #include<queue> #include<iostream> using namespace std; #define MaxSize 50 bool isHWord(char* str) { stack<char> p; queue<char> q; string Hword= str; for (int i = 0; i < Hword.length(); i++) { char s= Hword[i]; p.push(s); q.push(s); } while (!p.empty() && !q.empty()) { if (p.top() != q.front()) { break; } p.pop(); q.pop(); } return p.empty() && q.empty(); } int main() { while(1){ printf( "输入一个字符串:"); char str[MaxSize]; gets(str); isHWord(str) ? printf("是回文!\n") :printf("不是回文\n");//调用函数进行判断 } return 0; }
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- (转)C#与C++之间类型的对应
- C语言strcmp()函数:比较字符串(区分大小写)
- C语言链表各类操作详解
- C#委托实现C++ Dll中的回调函数
- Windows系统搭建Kafka C++ 客户端实现消息avro序列化发送
- C语言数组可以定义为a[n]吗
- c++ string类型的定义及方法
- c++中new的用法
- 按单词倒序字符串,C语言实现
- [UE4]C++中SpawnActor用法(动态创建Actor)
- [UE4]C++ string的用法和例子
- [UE4]C++创建对象的三种方式
- [UE4]C++三种继承方式
- [UE4]C++的const类成员函数
- [UE4]C++ getter and setter
- [UE4]C++ 动态内存分配的6种情况
- Josephus问题,数组和链表(C++实现)
- c语言之逗号运算符
- C语言之运算符优先级
- C++多态及其实现原理