力扣刷题(7. 整数反转)

题目描述

题目直接截图于力扣(LeetCode)。

该题网址:https://leetcode-cn.com/problems/reverse-integer/

用到的算法思想

  无。需要注意的是数值越界,int型能表示的最大范围是【负2的31次】到【2的31次-1】之间,而在反转时,有些方法需要进行 【*10】操作,有可能越界。

思路

  有许多种方法,比如可以转为字符,然后换过位置后再转回数字。

  此题的标签是【简单】,但我却依旧借鉴了别人的思路,感觉有些羞愧。

代码实现(C)

1、借鉴

  代码简介,思路清晰。

int reverse(int x){
    long r = 0; // int型会在【*10】时发生数值溢出(越界),所以用long型。
    while(x){
        r *= 10;
        if(r > 2147483647 || r < -2147483648) // 两个数字分别是整形能表示的最大值与最小值。
            return 0;
        r += x % 10;
        x /= 10;
    }    
    return r;
}
ps : 每次提交时的运行时间会因为各种因素而快慢有所不同.....
    过两天再试试别的方法

完成时间

  2021-01-18 13:16:16

posted @ 2021-01-18 13:23  新衫如旧  阅读(67)  评论(0)    收藏  举报