1. 程式人生 > 實用技巧 >力扣(leecode)題庫-簡單-02.整數反轉-JS解法

力扣(leecode)題庫-簡單-02.整數反轉-JS解法

題目:

給出一個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。

示例1:

輸入: 123
輸出: 321
示例 2:

輸入: -123
輸出: -321
示例 3:

輸入: 120
輸出: 21
注意:

假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為[−231, 231− 1]。請根據這個假設,如果反轉後整數溢位那麼就返回 0。

來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/reverse-integer
著作權歸領釦網路所有。商業轉載請聯絡官方授權,非商業轉載請註明出處。

解題思路:

先將給定的陣列轉化為字串型,然後再從後往前迴圈字串,並將返回的值利用字串的級聯組成新的字串,新增判斷是否有負號,如有則負號級聯在新字串最前,最後新字串乘1以便將字串轉化為數值型(當然也可以用方法轉換),同時判斷是否超出32位範圍。

JS解法程式碼:

var reverse = function(x) {
    var st = x.toString();
    var len = st.length;
    var num = '';
    for(var i = len - 1; i >=0; i--){
        if(st[i] == '-'){
            num = st[i] + num;
        }else{
            num = num + st[i];
        }
    }
    num = num * 1
    if(num > 2147483648 || num  < -2147483648){
        
return 0; }else{ return num; } };