整数反转
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
示例 1:
输入: 123
输出: 321
示例 2:
输入: -123
输出: -321
示例 3:
输入: 120
输出: 21
注意:
假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。
解法一:整数上的操作 x%10 x//10
array=int(input())
def reverse_option(s):
new_s=0
length=len(str(s))
while s!=0:
new_s=new_s*10+s%10
s=s//10
return new_s
def reverse(x):
if x==0:
return 0
elif x>0:
new_x=reverse_option(x)
else:
x=-x
new_x=reverse_option(x)
new_x=-new_x
if new_x>pow(2,31)-1 or new_x<pow(-2,31):
new_x=0
return new_x
print(reverse(array))
c
解法二:把整数先转成字符串,再转乘成整数
array=int(input())
def reverse(x):
new_str = ""
plus_minus="-"
if x==0:
return 0
elif x<0:
x=-x
str_x=str(x)
for i in str_x:
new_str=i+new_str
new_str=plus_minus+new_str
new_int=int(new_str)
else:
str_x = str(x)
for i in str_x:
new_str=i+new_str
new_int=int(new_str)
if new_int>pow(2,31)-1 or new_int<pow(-2,31):
return 0
return new_int
print(reverse(array))
执行用时 48 ms
内存消耗 13.9 MB
m的n次方
1.以下是 math 模块 pow() 方法的语法:
import math
math.pow( x, y )
2.内置的 pow() 方法
pow(x, y[, z])
3.x**y
函数是计算x的y次方,如果z在存在,则再对结果进行取模,其结果等效于pow(x,y) %z
注意:pow() 通过内置的方法直接调用,内置方法会把参数作为整型,而 math 模块则会把参数转换为 float。
整数(字符串)长度
字符串长度:len(str_num)
整数长度:len(str(num))