[力扣_7] 整数反转

题目入口:点击进入

相关算法:

  • 整数的基本运算——时间复杂度O(logn),空间复杂度O(1)

思路和算法:

简单题,只需要考虑反转后是否溢出,我们可以用longlong高精度来保存反转后的数,然后再判断它是否与它的(int)类型相等

  • 如果相等,则未过界
  • 如果不相等,则过界

同时我们要判断给定的整数是否小于0

  • 如果小于0,则为负数
  • 如果大于0,则为正数

反转就和字符串转化为整数规则类同:

  • num=num*10+(x%10)
  • x=x/10

同时这题有特殊情况,在(-10,10)区间上,可直接返回本身的值。

答题代码如下:

int reverse(int x){
    int sign;
    long long num=0;
    if(x>-10&&x<10)
    {
        return x;
    }
    if(x>0)
    sign=1;
    else
    sign=-1;

    while(x!=0)
    {
        num=num*10+(x%10);
        x=x/10;
    }
    if(num==(int)num)
    return num;
    else
    return 0;
}

本文链接:

https://nullcode.fun/53.html
1 + 4 =
快来做第一个评论的人吧~