公众号新增加了一个栏目,就是每天给大家解答一道Python常见的面试题,反正每天不贪多,一天一题,正好合适,只希望这个面试栏目,给那些正在准备面试的同学,提供一点点帮助! 小猿会从最基础的面试题开始,每天一题。如果参考答案不够好,或者有错误的话,麻烦大家可以在留言区给出自己的意见和讨论,大家是要一起学习的 。 废话不多说,开始今天的题目: 问:说说Python反转三位整数有几种方法? 答:这是leetcode上的一道编程算法题,感觉还是蛮经典的,今天就拿出来给大家分享一下!给出一个3位的正整数,你需要将这个整数中每位上的数字进行反转。例如:输入: 123,输出: 321 。大家先不看下面答案,看看如果是自己,可以想出几种Python方式来解决!
下面分别来说说几种实现的方式: 1、取余取整方式 class Test: 2、使用栈的方式 def reverseInteger(self, number): number = str(number) # 模拟入栈 l = list(number) result = "" while len(l) > 0: result += l.pop() # 模拟出栈 return int(result) if __name__ == "__main__": ts = Test() print (ts.reverseInteger(123)) # 输出结果:321
def reverseInteger(self, number): number=str(number) result=number[::-1] #python中切片的特殊用法 result=(int(result)) return result if __name__ == "__main__": ts = Test() print (ts.reverseInteger(123)) 4、整数转字符串,反转字符串,然后再转整数 def reverseInteger(self, x): plus_minus = "" reverse_x = "" if x < 0: plus_minus = "-" x = -x for i in str(x): reverse_x = i + reverse_x reverse_x = plus_minus + reverse_x if int(reverse_x) > pow(2, 31) - 1 or int(reverse_x) < pow(-2, 31): return 0 return int(reverse_x) if __name__ == "__main__": ts = Test() print (ts.reverseInteger(123)) #输出结果:321 以上是我分享的4种方式,大家还有其它的方式吗?上面代码都已经经过我亲自测试,可以直接使用! 如果对于参考答案有不认同的,大家可以在评论区指出和补充,欢迎留言! 更多题目: 关注小猿公众号,每天学习一道题 |
|