反转一个三位整数的多种方法
在LintCode上练习遇到这个问题,查阅资料找到多种方法,总结如下。
输入 | 输出 |
---|---|
123 | 321 |
第一种:整数方法取余取整实现
class Solution:
"""
@param number: A 3-digit number.
@return: Reversed number.
"""
def reverseInteger(self, number):
g = number%10 #取出个位数
s = (int(number/10))%10 #取出十位数
b = int(number/100) #取出百位数
return g*100+s*10+b
if __name__ == "__main__":
so = Solution()
print (so.reverseInteger(123))
python不和C语言一样自动截取保留整数,需要用 int 转换一下
第二种:使用字符串切片
def reverseInteger(self, number):
number=str(number)
result=number[::-1]
result=(int(result))
return result
借用字符串的方法处理
第三种:使用栈
def reverseInteger(self, number):
number=str(number)#模拟入栈
l=list(number)
result=""
while len(l)>0:
result+=l.pop()#模拟出栈
return int(result)