題目連結 https://leetcode.com/problems/palindrome-number/。
此題和高中生程式解題系統的 a022: 迴文 類似,不過此題處理的是數字。
小於零的都不是迴文數字。
但只需要翻轉到一半即可。也就是當翻轉後的數字大於原來的數字時,即可結束迴圈,要注意邊界條件。
程式碼:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | 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; } }; |
沒有留言:
張貼留言