LeetCode OJ: 9. Palindrome Number 迴文數字
2 min readNov 5, 2019
題目連結 https://leetcode.com/problems/palindrome-number/。
此題和高中生程式解題系統的 a022: 迴文 類似,不過此題處理的是數字。
小於零的都不是迴文數字。
此題會用到a038: 數字翻轉的技巧:
但只需要翻轉到一半即可。也就是當翻轉後的數字大於原來的數字時,即可結束迴圈,要注意邊界條件。
程式碼:
class Solution {
public:
bool isPalindrome(int x) {
// 小於零,或是個位數為零都不會是迴文
if(x < 0 || (x % 10 == 0 && x != 0)) {
return false;
} // 翻轉後的數字
int rNum = 0;
while(x > rNum) {
rNum = rNum * 10 + x % 10;
x /= 10;
}
return x == rNum || x == rNum/10;
}
};
Orignal: https://yunlinsong.blogspot.com/2019/11/leetcode-oj-9-palindrome-number.html