利用栈判断字符串回文c++
时间: 2023-07-30 20:10:37 浏览: 113
可以利用栈来判断一个字符串是否为回文。具体的实现思路如下:
1. 首先定义一个栈,用来存储字符串中的字符。
2. 遍历字符串中的每个字符,将其依次压入栈中。
3. 再次遍历字符串中的每个字符,将其与栈顶字符进行比较。
4. 如果发现有字符与栈顶字符不相同,则说明该字符串不是回文。
5. 如果所有字符都与栈顶字符相同,则说明该字符串是回文。
具体的C++代码如下:
```
#include <iostream>
#include <stack>
#include <string>
using namespace std;
bool is_palindrome(string str) {
stack<char> s;
int len = str.length();
for (int i = 0; i < len; i++) {
s.push(str[i]);
}
for (int i = 0; i < len; i++) {
if (s.top() != str[i]) {
return false;
}
s.pop();
}
return true;
}
int main() {
string str;
cout << "请输入一个字符串:";
cin >> str;
if (is_palindrome(str)) {
cout << "该字符串是回文" << endl;
} else {
cout << "该字符串不是回文" << endl;
}
return 0;
}
```
阅读全文