LeetCode每日一题:回文数(No.9)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode每日一题:回文数(No.9)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目:回文數
判斷一個整數是否是回文數。回文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。 復制代碼
示例:
輸入: 121 輸出: true輸入: -121 輸出: false 解釋: 從左向右讀, 為 -121 。 從右向左讀, 為 121- 。因此它不是一個回文數。輸入: 10 輸出: false 解釋: 從右向左讀, 為 01 。因此它不是一個回文數。 復制代碼
思考:
這道題首先可以判斷的是負數不是回文數,所以x<0直接返回false。 接著將x對10 求余,然后在除以10,再將結果對10求余,再次除以10。一直到結果為0為止。 接著將每次求得的余數按位數相加,得到的結果就是將原來的x翻轉過來的數。 例如:12345 12321 對10求余:余數為5 除以10:結果為12341232 對10求余:余數為4 除以10:結果為123123 對10求余:余數為3 除以10:結果為1212 對10求余:余數為2 除以10:結果為11 對10求余:余數為1 除以10:結果為0至此為止,我們發現將余數加起來就是54321,就是將原數12345翻轉后的結果。如果原數是回文數,則翻轉后的結果與原數相等。 復制代碼
實現:
class Solution {public boolean isPalindrome(int x) {if (x < 0) {return false;}//result為余數累加的結果int result = 0;int temp = x;while (temp != 0) {//remainder每次求得的余數int remainder = temp % 10;//將之前的結果乘以10 再加上新求的余數result = result * 10 + remainder;//將原數除以10temp = temp / 10;}return result == x;} } 復制代碼
轉載于:https://juejin.im/post/5c98e9556fb9a070d01407e8
總結
以上是生活随笔為你收集整理的LeetCode每日一题:回文数(No.9)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JStrom 入门(三) 上传jar文件
- 下一篇: 【技术博客】基于JsPlumb和JQue