Leetcode-js(1)

整數反轉

一個帶符號的32位整數,將他順序顛倒后求出。輸入 -123 ; 輸出-321

var reverse = function(x){
  /*將整型變量轉化為字符串*/
  var string_x = x+"";
  if(x<0)
  {
    /*replace函數用于去除符號,split用于轉化數組,reverse進行數組倒序,join再變?yōu)樽址?/
    var new_string_x = string_x.replace("-","").split("").reverse().join(""); 
    var number = parseInt("-"+new_string_x);
    /*Math.abs為絕對值*/
    if(Math.abs(number)>2147483648) return 0;
    else return number;
  }
  else
  {
    var new_string_x = string_x.split("").reverse().join("");
    var number = parseInt(new_string_x);
    if(number>=2147483648) return 0;
    else return number;
  }
};

回文數

判斷一個整數是否是回文數?;匚臄凳侵刚颍◤淖笙蛴遥┖偷剐颍◤挠蚁蜃螅┳x都是一樣的整數。
示例1:

121
true

示例2:

-11 10
false

一: 轉換字符串方法

與上面例題類似先轉化為字符串,再數組再對比最后得出結論便可

二: 數學方法

思路

  1. 如果值為負或者最后一位是0直接false
  2. 假設該數為num1,對num1進行10的取模運算,然后將取得的數值每一次都向前一位移動(因為回文數要求倒序,最后一位即回文的最高位)
  3. 在進行取模之后對x進行縮減,注意在js中如果直接進行 / 的運算還將存在小數,因此得采取parseInt()對它進行整型化處理。
  4. 將取模與做除法運算的兩個結果進行對比。如果取模值>除法值即表明已經過半(回文數中間值)
  5. 最后如果為奇數則要把取模值再做一次除法運算再進行比較即可

代碼

var isPalindrome = function(x) {
    if(x<0||(x%10 == 0 && x!=0)) return false;
    var renum=0;
    while(x>renum)
    {
        renum = renum*10+x%10;
        x = parseInt(x/10);
    }
    return x == renum || x == parseInt(renum/10);
};
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 給定一個整數數組 nums 和一個目標值 target,請你在該數組中找出和為目標值的那 兩個 整數,并返回他們的...
    sky云逝閱讀 320評論 0 0
  • 11js關系運算符 <!DOCTYPE html> 11js關系運算符 /*關系運算符存在的意義:1、默認情況下,...
    ouyangqinbin閱讀 425評論 0 0
  • 一、ECMAScript 一元運算符 一元運算符只有一個參數,即要操作的對象或值。它們是 ECMAScript 中...
    耦耦閱讀 584評論 0 0
  • 數據類型轉換: 1.當賦值符號兩邊的數據類型不同的時候,數據類型轉換是自動的,不需要程序員插手 當給 int 類型...
    Munin_閱讀 928評論 0 2
  • 其實孩子哭的時候,最先需要處理的是家長的情緒?!钡聡睦韺W家卡蘿拉·舒斯特認為,孩子的哭鬧會讓父母處于一種特別...
    Teacher紀閱讀 514評論 0 4

友情鏈接更多精彩內容