[LeetCode] 007. Reverse Integer (Easy) (C++/Java/Python),leetcodepython
索引:[LeetCode] Leetcode 題解索引 (C++/Java/Python/Sql)
Github: https://github.com/illuz/leetcode
007.Reverse_Integer (Easy)
連結:
題目:https://oj.leetcode.com/problems/Reverse-Integer/
代碼(github):https://github.com/illuz/leetcode
題意:
反轉一個數。
分析:
注意讀入和返回的數都是 int 型的,這時就要考慮反轉後這個數會不會超 int,超的話就返回 0 。這時處理數時最好用比 int 大的類型,不然恐怕會超範圍。
當然也可以用 int :if (result > (INT_MAX/10))
還有一點就是還要考慮前置字元為零。
代碼:C++:
class Solution {public: int reverse(int x) {long long tmp = abs((long long)x);long long ret = 0;while (tmp) {ret = ret * 10 + tmp % 10;if (ret > INT_MAX)return 0;tmp /= 10;}if (x > 0)return (int)ret;elsereturn (int)-ret; }};
Java:
public class Solution { public int reverse(int x) { int ret = 0; while (Math.abs(x) != 0) { if (Math.abs(ret) > Integer.MAX_VALUE) return 0; ret = ret * 10 + x % 10; x /= 10; } return ret; }}
Python:
class Solution: # @return an integer def reverse(self, x): revx = int(str(abs(x))[::-1]) if revx > math.pow(2, 31): return 0 else: return revx * cmp(x, 0)