leetcode 7 整数反转

题目描述

给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。

示例 1:
输入: 123
输出: 321
示例 2:
输入: -123
输出: -321
示例 3:
输入: 120
输出: 21

题目理解

  • 定义两个空的字符串 一个用来存放符号 一个用来反转
  • 将整数变为字符串 遍历每一个字符
  • 遍历一次 将当前的字符加在前面
  • 遍历完后 转换为整数
  • 判断该整数的范围 2 31 < x < 2 31 -2^{31}<x<2^{31} 否则返回0

代码实现

#!/usr/bin/env python 3.6
#-*- coding:utf-8 -*-
# @File    : 7.反转整数.py
# @Date    : 2018-12-04
# @Author  : 黑桃
class Solution(object):
    def reverse(self, x):
        """
        :type x: int
        :rtype: int
        """
        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)

print(Solution().reverse(-321))

猜你喜欢

转载自blog.csdn.net/Heitao5200/article/details/84799585