Python学习日记——整数反转
程序员文章站
2023-01-25 16:35:11
Python—整数反转Python小白学习日记##三位整数反转对于位数较少的整数,我们可以通过取余数等方法依次取它的个位、十位、百位上的数字,然后将这三个数字倒序排列即可得到想要的结果。class Solution: def reverse(self, x: int) -> int: if x > 0: a = x % 10 #得到个位数 b = (x // 10) % 10 #得到十...
Python学习日记001—整数反转
题目来源:LeetCode题库——整数反转
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
注:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。
Example1:
输入:123
输出:321
Example2:
输入:-123
输出:-321
链接:https://leetcode-cn.com/problems/reverse-integer/
三位整数反转
对于位数较少的整数,我们可以通过取余数等方法依次取它的个位、十位、百位上的数字,然后将这三个数字倒序排列即可得到想要的结果。
class Solution:
def reverse(self, x: int) -> int:
if x > 0:
a = x % 10 #得到个位数
b = (x // 10) % 10 #得到十位数
c = x // 100 #得到百位数
reverse_number = int(str(a) + str(b) + str(c)) #位数反转
return reverse_number
else:
abs_x = abs(x) #将负数取绝对值按正数处理
a = abs_x % 10
b = (abs_x // 10) % 10
c = abs_x // 100
reverse_number_positive = int(str(a) + str(b) + str(c))
reverse_number = -1 * reverse_number_positive #正数转为负数
return reverse_number
32位以内整数反转
假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为[−231, 231 − 1]。反转后整数溢出那么就返回 0。
对于位数较多的整数,如果像上述方法依次取出每位数字然后倒置排序,显然不可取。因此需要考虑一种在取数的同时便可以将数字倒置排序的方法。
cclass Solution:
def reverse(self, x: int) -> int:
reverse_number = 0
if x >= 0:
while x != 0:
reverse_number = reverse_number * 10 + x % 10 #每一步中,通过x%10可得到原数字的最后一位数字,通过reverse_number*10可达到数字反转的目的
x = x // 10 #每次通过x // 10 可达到略去最后一位的目的
else:
x = -x #将负数变为正数处理
while x !=0:
reverse_number = reverse_number * 10 + x % 10
x = x // 10
reverse_number = -reverse_number #再将正数转为负数
if reverse_number < -1*2**31 or reverse_number > 2**31-1: #超出规定值范围,将溢出,返回值为0
return 0
return reverse_number
学习过程中,欢迎指正。
本文地址:https://blog.csdn.net/weixin_43872060/article/details/107565574
上一篇: 蜂蜜溶于水后有沉淀是好蜂蜜么?什么样的蜂蜜才是好蜂蜜?
下一篇: python之SMTP发送邮件信息