一、题目描述
题目原文:
Reverse digits of an integer.(将一个整数反转输出)
举例:
Example1: x = 123, return 321
Example2: x = -123, return -321
注意:
If the integer's last digit is 0, what should the output be? ie, cases such as 10, 100.
(要考虑数字以0结尾的情况)
Did you notice that the reversed integer might overflow?
Assume the input is a 32-bit integer, then the reverse of 1000000003 overflows. How should you handle such cases?
For the purpose of this problem, assume that your function returns 0 when the reversed integer overflows.
(我们要考虑溢出的情况:假设为32为整数(-2^31~2^31-1 即:-2147483648到2147483647),反转后结果溢出时返回0)
二、题目分析
思路:将数字转化为字符串列表的形式表示,然后用列表的切片操作:[ : : -1] 或者 列表函数str.reverse() 进行反转,反转后对值溢出判定即可。
本文用列表切片的方式进行反转操作。
三、Python代码
class Solution(object): def reverse(self, x): """ :type x: int :rtype: int """ if x >= 0: result = int(str(x)[::-1]) if result > 2147483647: return 0 else: return result else: x = 0 - x result = 0 - int(str(x)[::-1]) if result < -2147483648: return 0 else: return result
四、其他
题目链接:https://leetcode.com/problems/reverse-integer/
Runtime: 56 ms
想法不够优化,欢迎大家留言交流~