python3 정수 반전의 실현 방법
만약 반전 후 정수가 32비트의 기호 정수가 있는 범위 [−2^31, 2^31−1]를 초과하면 0으로 되돌아간다.
환경에서는 64비트 정수(기호가 있거나 없거나)를 저장할 수 없다고 가정합니다.
예 1:
입력: x = 123
출력: 321
예 2:
입력: x = -123
출력: -321
예 3:
입력: x = 120
출력: 21
예 4:
입력: x = 0
출력: 0
사고방식 1: 문자열로 바꾸어 뒤집고 음과 음의 판단을 한다.마지막으로 제목은 반전 후 정수가 32자리의 기호 정수가 있는 범위 [−2^31, 2^31−1]를 초과하면 0으로 되돌려달라고 요구한다
class Solution:
def reverse(self, x: int) -> int:
str1 = str(x)
if str1[0] == '-':
str1 = str1[0] + str1[:0:-1]
else:
str1 = str1[::-1]
return int(str1) if -2147483648<int(str1)<2147483648 else 0
사고방식 2: 문자열을 사용하지 않습니다.뒤집힌 숫자가 조건보다 크면 0으로 돌아갑니다.
class Solution:
def reverse(self, x: int) -> int:
y, res = abs(x), 0
# [−2^31, 2^31 − 1]
boundry = (1<<31) -1 if x>0 else 1<<31
while y != 0:
res = res*10 +y%10
if res > boundry :
return 0
y //=10
return res if x >0 else -res
향상된 기능:
class Solution:
def reverse(self, x: int) -> int:
str1 = str(x)
if str1[0] == '-':
str1 = str1[0] + str1[:0:-1]
a=int(str1)
if (1<<31)<abs(a):
return 0
else:
str1 = str1[::-1]
a= int(str1)
if a>(1<<31) -1:
return 0
return a
물음: 파이썬이 세 자리 정수를 반전시키는 방법은 몇 가지가 있습니까?
답: 이것은 leetcode의 프로그래밍 알고리즘 문제입니다. 느낌은 여전히 고전적인 것 같습니다. 오늘 꺼내서 여러분께 공유해 드리겠습니다!세 자리의 정수를 제시하려면 이 정수의 모든 숫자를 반전시켜야 한다.예: 입력: 123, 출력: 321.여러분 먼저 아래의 답안을 보지 않고 자신이라면 몇 가지 Python 방식을 생각해 내서 해결할 수 있는지 보세요!
다음은 몇 가지 실현 방식을 설명한다.
1. 남은 것을 취하여 정정하는 방식
class Test:
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__":
ts = Test()
print (ts.reverseInteger(123)) # :321
2. 창고 사용 방식
class Test:
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
3. 슬라이스를 사용하는 방법
class Test:
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, 정수 회전 문자열, 반전 문자열, 그리고 정수 회전
class Test:
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
python3 정수 반전의 실현 방법에 관한 이 글은 여기까지 소개되었습니다. 더 많은 python3 정수 반전 내용은 저희 이전의 글을 검색하거나 아래의 관련 글을 계속 훑어보시기 바랍니다. 앞으로 많은 응원 부탁드립니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Jupyter 공식 DockerHub에 대한 메모에 기재되어 있다. base-notebook minimal-notebook scipy-notebook tensorflow-notebook datascience-notebook pyspark-notebook all-s...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.