1、问题描述
输入number=123,输出321;输入900,输出9。
2、代码实现
书上版本:
class Solution():
# 参数是整数number,返回值是一个反转后的数字
def reverseInteger(self, number):
h = int(number/100)
t = int(number % 100/10)
z = int(number % 10)
return (100*z + 10*t + h)
if __name__ == '__main__':
solution = Solution()
num = 123
ans = solution.reverseInteger(num)
print('输入:', num)
print('输出:', ans)
局限性:完成了目标,是反转了一个三位数,但是大于三位就不行了。
改进版本:
优点:不管多少位,都能进行反转。
class Solution():
# 参数是整数number,返回值是一个反转后的数字
def reverseInteger(self, number):
a = []
for i in str(number):
a.append(i)
a.reverse()
return a
if __name__ == '__main__':
solution = Solution()
num = input('输入:')
ans = solution.reverseInteger(num)
ans1 = [str(i) for i in ans]
output = int(''.join(ans1))
# print('输入:', num)
print('输出:', output)
3、代码思路
1、将整数转换成str;
2、将str放到一个列表里面;
3、利用.reverse()对列表进行反转;
4、利用.join()将列表转换成数字。
4、知识点
关键函数:
a.reverse()
解读:reverse()是python列表中的一个内置方法,用于反向列表中元素;语法:“list.reverse()”。reverse()方法没有返回值,但是会对列表的元素进行反向排序。
.join()
这个函数展开来写应该是str.join(item),join函数是一个字符串操作函数;join里放列表、元组、字典也是可以的。举个例子:
','.join('abc')
# 返回:'a,b,c'
';'.join([a,b,c])
>> 'a;b;c'