7. Reverse Integer (整数的溢出)

Reverse digits of an integer.

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

For the purpose of this problem, assume that your function returns 0 when the reversed integer overflows.

int reverse(int x) {
    if(x == INT_MIN){//-2147483648
        return 0;
    }

    bool pos = x>= 0? true:false;
    x = abs(x);
    int ret = 0;

    while(x>0){
        if((ret > 214748364) || (214748364==ret && x%10 >7)) return 0;
        ret = ret*10 +  x%10;
        x /= 10;
    }
    if(!pos) ret = 0-ret;
    return ret;
}
时间: 2024-10-20 14:47:57

7. Reverse Integer (整数的溢出)的相关文章

leetcode——7 Reverse Integer(附有溢出整数翻转的实现)

Reverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, return -321 Have you thought about this? Here are some good questions to ask before coding. Bonus points for you if you have already thought through this! If the integer'

LeetCode Reverse Integer (处理溢出)

这道题看上去比较简单,但是需要注意的细节和情况的处理还是很多的. (1) 注意负数 (2)注意10,100这类数字的反转 (3) 最容易忽视的一点,整型的溢出.(2333333339反转超int) 注意我们计算的过程中不需要另外存数字,直接计算就好.处理溢出我们先用long long储存,超int后直接返回0 其实我们发现,(1)和(2)都不需要特殊处理,在运算的过程中会自行处理. class Solution { public: int reverse(int x) { int maxx=0x

LeetCode7~9 Reverse Integer/String to Integer (atoi)/Palindrome Number

一:Reverse Integer 题目: Reverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, return -321 链接:https://leetcode.com/problems/reverse-integer/ 分析:这题通过不断取余将余数存放在一个vector中,然后乘以相应的10^i次方相加即可,这里主要考虑是否overflow,因此将result设为long long int

leetcode——Reverse Integer 反转整数数字(AC)

Reverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, return -321 这个题比较简单,考虑特殊情况如12000,注意检查反转后数字是否会越界溢出.代码如下: class Solution { public: int reverse(int x) { bool minus = false; short int splitNum[10]; int i = 0, j = 0; unsign

Reverse Integer - 反转一个int,溢出时返回0

Reverse Integer Reverse digits of an integer. Example1: x = 123, return 321Example2: x = -123, return -321 若反转的数溢出,直接返回0 可以用计算结果来判断溢出,也可以用因数来判断 Java代码实现: 1 public class ReverseInteger { 2 public static int reverseInt(int x){ 3 if (x == 0) { 4 return

[LintCode] Reverse Integer 翻转整数

Reverse digits of an integer. Returns 0 when the reversed integer overflows (signed 32-bit integer). Have you met this question in a real interview? Example Given x = 123, return 321 Given x = -123, return -321 LeetCode上的原题,请参见我之前的博客Reverse Integer.

LeetCode:Reverse Integer - 翻转数字

1.题目名称 Reverse Integer(翻转数字) 2.题目地址 https://leetcode.com/problems/reverse-integer/ 3.题目内容 英文:Reverse digits of an integer. 中文:翻转一个正整数的各位,形成一个新数字 例如:x = 123, return 321:x = -123, return -321 4.一个有瑕疵的方法(不能AC) 一个比较好想到的方法,是先将输入的数字转换为字符串,再将字符串翻转后转换为数字.这个方

LeetCode 007 Reverse Integer

[题目] Reverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, return -321 [题意] 反转int型整数,输出的也是int型的整数 [思路] 如要考虑两种特殊情况: 1. 类似100这样的整数翻转之后为1 2. 翻转之后的值溢出该如何处理, 本题的测试用例中似乎没有给出溢出的情况 在实际面试时需要跟面试官明确这种情况的处理方法. 基于这点事实,本题规定如果超出正边界返回INT_MA

Reverse Integer问题

问题描述: Reverse digits of an integer. Example1: x = 123, return 321Example2: x = -123, return -321 这应该算是相当简单的问题了,用%和/来不断获取整数的最低位,用atoi的思想获得转换后的数.这题考察的应该是我们的细心程度.一个合格的Reverse Integer算法应该考虑到溢出的情况. int reverse(int x) { int y=0; int max=~(unsigned int)0/2;