1. 程式人生 > 實用技巧 >刷題-力扣-7

刷題-力扣-7

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

題目分析

  1. 整數反轉,從末尾數字先出
  2. 利用求餘獲得最後一位數字,求除獲得剩下的數字
  3. 迴圈直到x變為零
  4. 如果long轉化為int後不變,則返回long
  5. 如果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