回文数栈和队列c++
时间: 2023-10-19 17:09:27 浏览: 117
回文-栈和队列
回文数是指正反读都相同的数字,例如121、1221等。下面是使用栈和队列判断一个数是否为回文数的C++代码:
使用栈:
```c++
#include <iostream>
#include <stack>
using namespace std;
int main() {
int n;
cin >> n;
stack<int> s;
int temp = n;
while (temp) {
s.push(temp % 10);
temp /= 10; }
bool isPalindrome = true;
while (!s.empty()) {
if (s.top() != n % 10) {
isPalindrome = false;
break;
}
s.pop();
n /= 10;
}
if (isPalindrome) {
cout << "Yes" << endl;
} else {
cout << "No" << endl;
}
return 0;
}
```
使用队列:
```c++
#include <iostream>
#include <queue>
using namespace std;
int main() {
int n;
cin >> n;
queue<int> q;
int temp = n;
while (temp) {
q.push(temp % 10);
temp /= 10;
}
bool isPalindrome = true;
while (!q.empty()) {
if (q.front() != n % 10) {
isPalindrome = false;
break;
}
q.pop();
n /= 10;
}
if (isPalindrome) {
cout << "Yes" << endl;
} else {
cout << "No" << endl;
}
return 0;
}
```
阅读全文