1. 程式人生 > >7-整數反轉

7-整數反轉

範圍 進行 var for 拆分 str 反轉 符號 fun

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

示例 1:

輸入: 123
輸出: 321

示例 2:

輸入: -123
輸出: -321

示例 3:

輸入: 120
輸出: 21


註意:

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

解決方法:

  1. 將原數字x轉換為字符串後,拆分為數組

  2. 交換 i 和 len - i - 1位置的數字

  3. join 新的數組,在轉化為數字

  4. 加入原數字x的符號

  5. 判斷轉化後的數字是否溢出範圍

代碼如下

 1 var reverse = function(x) {
 2     var nums = Math.abs(x).toString().split(‘‘)
 3     var len = nums.length
 4 
 5     var flag = 1
 6 
 7     var temp = null
 8 
 9     for (var i = 0, j = Math.floor(len / 2); i < j; i++) {
10         temp = nums[i]
11 nums[i] = nums[len - i - 1] 12 nums[len - i - 1] = temp 13 } 14 15 if (x < 0) { 16 flag = -1 17 } 18 19 20 var result = +(nums.join(‘‘)) * flag 21 22 if (Math.pow(-2, 31) <= result && result < Math.pow(2, 31)) { 23 return
result 24 } else { 25 return 0 26 } 27 };

同理解決方案,344-反轉字符串

7-整數反轉