LeetCode OJ(7)

来源:互联网 发布:淘宝拍卖可以退货吗 编辑:程序博客网 时间:2024/05/16 10:03

Reverse Integer

可怕,又是一道easy卡了我那么久!总是会出现谜之错误!

鄙渣自己的代码:

int reverse(int x) {    int bit[10];    long long rev_num=0;    int sign=0;    if(x<0){        sign=1;        x*=-1;    }    int count=0;    while(x){        bit[count++]=x%10;        x/=10;    }    for(int i=0;i<count;i++)        rev_num=10*rev_num+bit[i];    return rev_num;    if(rev_num>pow(2,31))        return 0;    return rev_num*pow(-1,sign);}

鄙渣真的谜之尴尬!long long类型都用了,你还溢出!你到底是想怎样啊!最后,我去求助了大神~

找大神帮我提交的代码:

int reverse(int x) {    long long rev_num=0;    int x_temp=x>0?x:(-x);    while(x_temp!=0){        rev_num=rev_num*10+x_temp%10;        x_temp/=10;    if (rev_num>0x7FFFFFFF) return 0;    }    return x>0?rev_num:(-rev_num);}

对,没猜错,大神的也没有AC,依然是wrong answer!
错误截图都是一样的!你tm的在逗我!
LeetCode的报错

不玩了,不玩了,继续奋斗!

可怕可怕!完全不知道什么情况,我最后竟然在大神的调试下AC了!

 int reverse(int x) {    const int max_int=0x7FFFFFFF;    const int min_int=0x80000000;    long long rev_num=0;    while(x!=0){        rev_num=rev_num*10+x%10;        x/=10;    }    if (rev_num>max_int || rev_num<min_int) return 0;    return rev_num;}

你没看错,这确实是AC的代码,和Wrong Answer的代码基本没区别好吧,你一定是逗我的!

最后,我又尝试将max_int和min_int换成常数,即0x7FFFFFFF和0x80000000,结果依然是错的!
莫名其妙的错误

0 0
原创粉丝点击