給出乙個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。
注意
假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為 [−231, 231 − 1]。請根據這個
假設,如果反轉後整數溢位那麼就返回 0。
方法一、 翻轉字串方法
如果將數字看成是有符號位的字串,那麼我們就能夠通過使用 js 提供的字串方法來實現非符 號部分的翻轉,又因為整數的翻轉並不影響符號,所以我們最後補充符號,完成演算法。
首先設定邊界極值;
使用字串的翻轉函式進行主邏輯;
補充符號
然後拼接最終結果
複雜度分析
方法二 、類似 歐幾里得演算法 求解
我們借鑑歐幾里得求最大公約數的方法來解題。符號的處理邏輯同方法一,這裡我們通過模 10 取 到最低位,然後又通過乘 10 將最低位迭代到最高位,完成翻轉。
設定邊界極值;
取給定數值的絕對值,遍歷迴圈生成每一位數字,借鑑歐幾里得演算法,從 num 的最後一位開
始取值拼成新的數
同步剔除掉被消費的部分
如果最終結果為異常值,則直接返回 0;如果原本資料為負數,則對最終結果取反
返回最終結果
複雜度分析
LeetCode 整數翻轉
中文版無需翻牆哦!給出乙個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。示例 1 輸入 123 輸出 321 示例 2 輸入 123 輸出 321 示例 3 輸入 120 輸出 21 注意 假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為 231,231 1 請根據...
reverse interger 整數翻轉
一 計算機中32位int型別變數的範圍,其中int型別是帶符號整數。正數在計算機中表示為原碼,最高位為符號位 1的原碼為0000 0000 0000 0000 0000 0000 0000 0001 2147483647的原碼為0111 1111 1111 1111 1111 1111 1111 1...
題目 翻轉整數
這道題我覺得應該用二進位制位移來做比較快,但是懶得想了就寫了乙個最普通的方法 static const auto io speed up class solution 結果超過了99.69 真滴好奇比這個還慢的是怎麼做的。之所以說這個最簡單,是因為從返回型為int和要求64位可以得到leetcode...