7-整數反轉
阿新 • • 發佈:2019-03-23
範圍 進行 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 returnresult 24 } else { 25 return 0 26 } 27 };
同理解決方案,344-反轉字符串
7-整數反轉