Leetcode篇:整数反转



@author: ZZQ

@software: PyCharm

@file: IntReverse.py

@time: 2018/9/16 16:36

要求:整数反转(给定一个 32 位有符号整数,将整数中的数字进行反转)

e.g.: 输入: 123 输出: 321

输入: -123 输出: -321

输入: 120 输出: 21

【假设我们的环境只能存储 32 位有符号整数,其数值范围是 [?2^31, 2^31 ? 1]。

根据这个假设,如果反转后的整数溢出,则返回 0。】

需考虑:反转以后数组越界问题

import math

def main(x):
    m = 0
    if x > 0:
        n = x
        flag = 1
    else:
        n = -x
        flag = -1
    while n > 0:
        m = m * 10 + n % 10
        n = n / 10
        # print m, n
    m = m * flag
    if m > (math.pow(2, 31)-1):
        return 0
    if m < - math.pow(2, 31):
        return 0
    return m

if __name__ == "__main__":
    n = 123456789
    print main(n)

    n = -123
    print main(n)

原文地址:https://www.cnblogs.com/zzq-123456/p/9671307.html

时间: 2024-07-29 13:23:47

Leetcode篇:整数反转的相关文章

Leetcode 7. 整数反转(ing)

1.题目描述 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示例 1: 输入: 123 输出: 321  示例 2: 输入: -123 输出: -321 示例 3: 输入: 120 输出: 21 注意: 假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231,  231 − 1].请根据这个假设,如果反转后整数溢出那么就返回 0. 2.<limits>头文件 //宏定义 #define INT_MAX 2147483647 #define IN

【一起刷LeetCode】整数反转

前言&絮叨 别人都忙着参加年会晒奖品,我却忙着写代码.每逢年底都要安排几个紧急项目,我什么时候能摆脱这种宿命. 在忙也不能忘记刷LeetCode,毛毛向前冲!!! 题目描述 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示例1: 输入: 123 输出: 321 示例 2: 输入: -123 输出: -321 示例 3: 输入: 120 输出: 21 注意: 假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为[-2 ^ 31, 2 ^ 31 ? 1].请根

LeetCode:整数反转(Reserve Integer)

public class ReserveInteger { public int reverse(int x) { //用于接收个位数(10的余数) int remainder; //是否负数 int isMinus = 0; //存储结果 double result = 0; //获得整数长度 int length = ("" + x).length(); if (x < 0) { isMinus = -1; } //遍历整数的每一位,如果是负数就少遍历一次 for (int

力扣(LeetCode)整数反转 个人题解

给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示例 1: 输入: 123 输出: 321 示例 2: 输入: -123 输出: -321 示例 3: 输入: 120 输出: 21 注意: 假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [?231,  231 ? 1].请根据这个假设,如果反转后整数溢出那么就返回 0. 官方题解的思路是逐位取出,判断是否满足溢出的条件,并列举了可能出现的俩种情况,遇到直接返回0 .总得来说还是考察对数字的敏感. 代码

LeetCode 3.整数反转

题目描述 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示例 1: 输入: 123输出: 321 示例 2: 输入: -123输出: -321示例 3: 输入: 120输出: 21注意: 假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231,  231 − 1].请根据这个假设,如果反转后整数溢出那么就返回 0. 解题思路 利用Stringbuilder的reverse()方法来对数字进行反转,注意一些溢出细节即可 代码如下 class Sol

Python版[leetcode]7. 整数反转(难度简单)

给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示例 1: 输入: 123输出: 321 示例 2: 输入: -123输出: -321示例 3: 输入: 120输出: 21注意: 假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231,  231 − 1].请根据这个假设,如果反转后整数溢出那么就返回 0. 这道题可以用到python的字符串反转[::-1],非常方便,只要处理一下溢出以及负数即可 class Solution: def rever

【Leetcode】整数反转

题解参考:https://leetcode-cn.com/problems/reverse-integer/solution/zheng-shu-fan-zhuan-by-leetcode/ 复杂度分析 时间复杂度:O(log(x)),x中大约有 log10(x) 位数字.空间复杂度:O(1). 原文地址:https://www.cnblogs.com/gdut-gordon/p/11306354.html

LEETCODE 7 整数反转

class Solution { public: int reverse(int x) { long long ret=0; long long cmp1=((long long)1<<31)-1; long long cmp2=-cmp1-1; while(x!=0) { ret=ret*10+x%10; if((ret>cmp1)||(ret<cmp2)) return 0; x/=10; } return ret; } }; 注意不能直接写1<<32,因为默认1是

leetcode——Reverse Integer 反转整数数字(AC)

Reverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, return -321 这个题比较简单,考虑特殊情况如12000,注意检查反转后数字是否会越界溢出.代码如下: class Solution { public: int reverse(int x) { bool minus = false; short int splitNum[10]; int i = 0, j = 0; unsign