標籤:數字 java 回訪 演算法 面試
【009-Palindrome Number(迴文數)】
【LeetCode-面試演算法經典-Java實現】【所有題目目錄索引】
原題
Determine whether an integer is a palindrome. Do this without extra space.
題目大意
判斷一個數字是否是回訪字數,不要使用額外的空間。
解題思路
為了不使用額外的空間,參考了其它的解決,那些解法看起來在isPalindrome方法中沒有使用額外參數,但是卻使用了方法調用,這個比一個整數消耗的空間更多 ,並沒有達到題目的要求,是假的實現,所以本題依然採用一個額外的空間進行實現。
首先,負數不是迴文數字,其次對數字進行逆轉,123變成321這樣,如果變換後的數字相等說明是迴文數字。
代碼實現
public class Solution { public boolean isPalindrome(int x) { // 負數不是回訪數字 if (x < 0) { return false; } // 數字逆轉後的值,為了不使用溢出採用long long reverse = 0; int tmp = x; // 求逆轉後的值 while (tmp != 0) { reverse = reverse * 10 + tmp % 10; tmp /= 10; } // 判斷是否是迴文數字 return x == reverse; }}
評測結果
點擊圖片,滑鼠不釋放,拖動一段位置,釋放後在新的視窗中查看完整圖片。
特別說明
歡迎轉載,轉載請註明出處【http://blog.csdn.net/derrantcm/article/details/46951803】
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
【LeetCode-面試演算法經典-Java實現】【009-Palindrome Number(迴文數)】