描述:
判断一个正整数是不是回文数。
回文数的定义是,将这个数反转之后,得到的数仍然是同一个数。
样例:
11, 121, 1, 12321 这些是回文数。
23, 32, 1232 这些不是回文数。
思路:
先将这个待检查的int型变量用字符串流转换成字符串,用string类中的size()函数获得字符串长度,判断为奇数长度或偶数长度。根据奇数长度和偶数长度的特点,分别判断在对应位置上的数字是否相等。
C++实现:
class Solution {
public:
/**
* @param num a positive number
* @return true if it's a palindrome or false
*/
bool palindromeNumber(int num) {
// Write your code here
if (num >= 0 && num <= 9) {
return 1;
}
string number;
stringstream stream;
stream << num;
stream >> number;
int size = number.size();
int flag = 1;
if (size % 2 == 1) {
for (int i = 0; i <= (size - 1) / 2 - 1; i++) {
if (number.at(i) != number.at(size - i - 1)) {
flag = 0;
break;
}
}
}
else if (size % 2 == 0) {
for (int i = 0; i <= size / 2 - 1; i++) {
if (number.at(i) != number.at(size - i - 1)) {
flag = 0;
break;
}
}
}
return flag;
}
};