c++判断字符串是否为回文
时间: 2023-11-21 22:55:22 浏览: 276
可以使用栈来判断一个字符串是否为回文。具体步骤如下:
1. 定义一个栈,将字符串的每个字符依次入栈。
2. 再次遍历字符串,将每个字符与栈顶元素进行比较,如果相同则弹出栈顶元素,继续比较下一个字符,直到字符串遍历完毕。
3. 如果栈为空,说明字符串是回文,否则不是回文。
下面是C++代码实现:
```c++
#include <iostream>
#include <stack>
#include <string>
using namespace std;
bool isPalindrome(string s) {
stack<char> st;
for (char c : s) {
if (isalnum(c)) {
st.push(tolower(c));
}
}
for (char c : s) {
if (isalnum(c)) {
if (tolower(c) != st.top()) {
return false;
}
st.pop();
}
}
return true;
}
int main() {
string s;
cout << "请输入一个字符串:";
cin >> s;
if (isPalindrome(s)) {
cout << "yes" << endl;
} else {
cout << "no" << endl;
}
return 0;
}
```
阅读全文