力扣刷题(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