python3 정수 반전의 실현 방법

3689 단어 python3정수반전
기호 정수 x를 32자리로 주고 x의 숫자 부분을 반전시킨 결과를 되돌려줍니다.
만약 반전 후 정수가 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 정수 반전 내용은 저희 이전의 글을 검색하거나 아래의 관련 글을 계속 훑어보시기 바랍니다. 앞으로 많은 응원 부탁드립니다!

좋은 웹페이지 즐겨찾기