回文数和符号匹配问题类似,都是要使用栈的先进后出原理,然后用数组储存数字的每一位,然后和栈中弹出的数进行比对。
我使用了c++中带有的stack库的函数。可以直接对栈进行操作。
class Solution {
public:
/*
* @param num: a positive number
* @return: true if it's a palindrome or false
*/
bool isPalindrome(int num) {
// write your code here
stack<int> s;
int i = 0, j = 0;
int a[100];
while(num)
{
s.push(num % 10);
i++;
num = num / 10;
}
int number = s.size();
for(i = 0; i < number; i++)
{
a[i] = s.top();
s.pop();
}
for(j = 0; j < number; j++)
{
s.push(a[j]);
}
j = 0;
while(j != number)
{
if(s.top() != a[j])
{
return false;
}
s.pop();
j++;
}
return true;
}
};
2018/2/6