博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode No.7 Reverse Integer 2017/3/27
阅读量:6402 次
发布时间:2019-06-23

本文共 1003 字,大约阅读时间需要 3 分钟。

Reverse digits of an integer.

Example1: x = 123, return 321

Example2: x = -123, return -321

Note:

The input is assumed to be a 32-bit signed integer. Your function should return 0 when the reversed integer overflows.

 

 to see which companies asked this question.

 
题目大意:返回一个数的逆置数,并且如果逆置后发生溢出时返回0
解题思路:首先判断x是正数还是负数,用sign等于1或者-1来保存x的符号,然后当x是负数的时候把它先变为正数。x=0的情况并到后面直接返回0。用rex保存将要返回的数,每次循环只要当前x不为0,就把rex的每个位上的数都往左移一位(即将rex乘以10)并将x的最低位添加到rex的最低位(加上x除以10求余),然后将x的最低位丢掉(x/=10)。输出结果前对rex进行判断,若溢出就直接输出0,否则把逆置后的rex乘上符号sign得到输出结果。
在编程过程中犯了个低级错误,一开始由于把x分成正数负数和0,我就用了三个if语句,后来把0的情况删掉了,但是正负数分别用了if来判断,先判断x是负数的话就将sign标记为-1,然后将x变为正数,结果后面判断x如果是正数的话又把sign变成了1,所以当输入负数的时候结果一直是正数的逆置。。实在是太愚蠢了。最后改成先判断是正数再判断是负数,就不会出现将负数x变为正数后影响了sign值。

class Solution:

def reverse(self, x):
"""
:type x: int
:rtype: int
"""
sign = 0
if (x > 0):
sign = 1
if (x < 0):
sign = -1
x = x * -1
rex = 0
while (x != 0):
rex = rex * 10 + x % 10
x /= 10
if rex > 2 ** 31 -1:
return 0
else:
return rex * sign

 
 

转载于:https://www.cnblogs.com/fangdai/p/6624961.html

你可能感兴趣的文章
React Native——react-navigation的使用
查看>>
“二子乘舟”的故事很难讲
查看>>
Luhn(卢恩)算法,检测信用卡号的合法性
查看>>
邮件服务的基本理论
查看>>
第九章 性能监控诊断
查看>>
RESTful再理解
查看>>
大数据量下的集合过滤—Bloom Filter
查看>>
Wannafly挑战赛9
查看>>
《企业云桌面实施》-小技巧-02-使用ISO光驱安装esxi6.5
查看>>
Python从菜鸟到高手(4):导入Python模块
查看>>
实战:Windows 2008 WDS使用参考计算机创建安装映像
查看>>
利用缓存来提高网站的性能(Caching to Improve the Performance of Your Website )
查看>>
Android应用程序注册广播接收器(registerReceiver)的过程分析
查看>>
对代理ARP技术的误读、无法完成代理ARP实验的故障分析
查看>>
详解网络流量监控
查看>>
可视化日志分析工具Gltail的安装与使用
查看>>
关于Segmentation fault (core dumped)几个简单问题
查看>>
经典SQL语句大全(基础篇)
查看>>
HTML5 Canvas眨眼睛动画
查看>>
C-C和指针作业题(第一章)
查看>>