利用“堆栈”和“队列”,对输入的一组“字符串”判断是否“回文”,用devc++
时间: 2023-10-31 18:06:37 浏览: 108
好的,我们可以利用堆栈和队列来判断字符串是否为回文。下面是代码实现:
```c++
#include <iostream>
#include <stack>
#include <queue>
#include <string>
using namespace std;
int main() {
string s;
cout << "请输入字符串:";
cin >> s;
stack<char> st;
queue<char> q;
for (int i = 0; i < s.length(); i++) {
st.push(s[i]);
q.push(s[i]);
}
bool flag = true;
while (!st.empty() && !q.empty()) {
char c1 = st.top();
char c2 = q.front();
if (c1 != c2) {
flag = false;
break;
}
st.pop();
q.pop();
}
if (flag) {
cout << "是回文字符串" << endl;
} else {
cout << "不是回文字符串" << endl;
}
return 0;
}
```
我们首先输入一个字符串,然后利用堆栈和队列分别存储字符串中的字符。接着我们从堆栈和队列中依次弹出字符,判断它们是否相等,若不相等,则说明该字符串不是回文字符串。最后根据判断结果输出相应的信息。
注意,这里我们只考虑了字符串中的字母和数字,而忽略了其他字符。如果需要考虑其他字符,可以在入栈和入队之前先进行过滤。
阅读全文