Leetcode - Medium - 7. Reverse Integer - Javascript

2022年1月15日 星期六

Leetcode - Medium - 7. Reverse Integer - Javascript


 7. Reverse Integer

Medium

Given a signed 32-bit integer x, return x with its digits reversed. If reversing x causes the value to go outside the signed 32-bit integer range [-231, 231 - 1], then return 0.

Assume the environment does not allow you to store 64-bit integers (signed or unsigned).

 

Example 1:

Input: x = 123
Output: 321

Example 2:

Input: x = -123
Output: -321

Example 3:

Input: x = 120
Output: 21

 

Constraints:

  • -231 <= x <= 231 - 1



解題方向:
1. 這題是要反轉數字後保留正負數符號
2. 先轉成字串, 在檢查第一個文字是不是 '-1' 是的話就記錄負數
3. 再反轉紀錄文字, 最後再轉成數字和疊加正負數符號
4. 結果沒落在  -231 <= x <= 231 - 1  就要回傳 0

程式碼 :

/**
 * @param {number} x
 * @return {number}
 */
var reverse = function(x) {
    
    
    const stringX = x.toString();
    
    let index = 0;
    let revertStringX = '';
    let isPositive = true;
    while (index < stringX.length) {
        const letter = stringX[index];
        
        if (index === 0 && letter === '-') {
            isPositive = false;
        } else {
            revertStringX = letter + revertStringX;
        }
        
        index++;
    }
    
    let result = 0;
    
    if (isPositive) {
        result = parseInt(revertStringX); 
    } else {
        result = -(parseInt(revertStringX));
    }
    
    if (result < -2147483648 || result > 2147483649) { return 0;} 
    return result;
};


執行成果:


0 意見 :

張貼留言