刷題-力扣-7
阿新 • • 發佈:2021-01-11
7. 整數反轉
題目連結
來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/reverse-integer/submissions/
著作權歸領釦網路所有。商業轉載請聯絡官方授權,非商業轉載請註明出處。
題目描述
給出一個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。
注意:
假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為 [−231, 231 − 1]。請根據這個假設,如果反轉後整數溢位那麼就返回 0。
示例 1:
輸入:x = 123
輸出:321
示例 2:
輸入:x = -123
輸出:-321
示例 3:
輸入:x = 120
輸出:21
示例 4:
輸入:x = 0
輸出:0
提示:
- -231 <= x <= 231 - 1
題目分析
- 整數反轉,從末尾數字先出
- 利用求餘獲得最後一位數字,求除獲得剩下的數字
- 迴圈直到x變為零
- 如果long轉化為int後不變,則返回long
- 如果long轉化為int後改變,說明溢位,返回0
程式碼
class Solution { public: int reverse(int x) { if (x == 0) return x; long res = 0; while (x != 0) { res = res * 10 + x % 10; x = x / 10; } return (int)res == res ? res : 0; } };
用時30min