程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> leetcode筆記:Reverse Integer

leetcode筆記:Reverse Integer

編輯:關於C++

一. 題目描述

Reverse digits of an integer.

Example1: x = 123, return 321
Example2: x = -123, return -321

二. 題目分析

反轉一個整數,若為負數,則負號不變,然後反轉負數。該題題設雖然簡單,但隱藏一些陷阱,如反轉後數字的溢出問題、低位為0時反轉到高位時又怎麼處理。這種題目目的不是為了考察某種算法,而是考察對各種邊界條件是否考慮周全。這裡的代碼只是能Accept,不代表完美無缺。

三. 示例代碼

class Solution
{
public:
    int reverse (int x)
    {
        long long result = 0;
        const int max = 0x7fffffff;  // int最大值  
        const int min = 0x80000000;  // int最小值

        for (; x != 0; x /= 10)
        {
            result = result * 10 + x % 10;
            if (result > max || result < min)
                result = 0; // 超出32位int的范圍,置0 
        }

        return result;
    }
};

四. 小結

對於一些表面上看起來簡單的題目,越是要重點考慮一些邊界條件,而這些在筆試或面試時也能為你帶來加分。


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved