用栈判断回文数据结构
时间: 2024-05-17 11:10:35 浏览: 94
回文数据结构是指正反顺序排列都一样的数据结构,例如“level”和“racecar”。使用栈可以判断一个字符串是否为回文。具体步骤如下:
1. 将字符串压入栈中,从左到右依次压入。
2. 依次弹出栈顶元素,将其组成新的字符串。
3. 判断原字符串和新字符串是否相等。若相等,则为回文。
下面是示例代码(C++):
```cpp
#include <iostream>
#include <stack>
#include <string>
using namespace std;
bool isPalindrome(string str) {
stack<char> s;
int len = str.length();
for (int i = 0; i < len; i++) {
s.push(str[i]);
}
string newStr = "";
for (int i = 0; i < len; i++) {
newStr += s.top();
s.pop();
}
return str == newStr;
}
int main() {
string str = "racecar";
if (isPalindrome(str)) {
cout << str << " is a palindrome" << endl;
} else {
cout << str << " is not a palindrome" << endl;
}
return 0;
}
```
阅读全文