首页 > 其他分享 >整数反转

整数反转

时间:2023-04-16 19:44:42浏览次数:36  
标签:index nums int 反转 示例 整数 res 10

题目描述

难度中等

给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。

如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。

假设环境不允许存储 64 位整数(有符号或无符号)。

示例 1:

输入:x = 123
输出:321

示例 2:

输入:x = -123
输出:-321

示例 3:

输入:x = 120
输出:21

示例 4:

输入:x = 0
输出:0

提示:

  • -231 <= x <= 231 - 1

解题步骤

时间复杂度和空间复杂度都是\(O(n)\)。

class Solution:
    def reverse(self, x: int) -> int:
        s1 = "2147483648"
        s2 = "2147483647"
        nums = []
        if x > 0:
            flag = 1
        else:
            flag = -1
            x = -x

        while x != 0:
            nums.append(x % 10)
            x //= 10
        
        n = len(nums)
        if n == 10:
            if x > 0:
                for index, i in enumerate(nums):
                    if i > int(s2[index]):
                        return 0
                    elif i < int(s2[index]):
                        break
            else:
                for index, i in enumerate(nums):
                    if i > int(s1[index]):
                        return 0
                    elif i < int(s1[index]):
                        break
        res = 0
        for i in nums:
            res *= 10
            res += i
        return flag * res

标签:index,nums,int,反转,示例,整数,res,10
From: https://www.cnblogs.com/crazypigf/p/17323888.html

相关文章

  • js 传递汉字 乱码_JavaScript 字符串反转乱码问题解决
    https://blog.csdn.net/weixin_36483301/article/details/113451892emoji表情和非常用字实际解决中文编码问题,可以通过解码解决js中使用decodeURL即可解决......
  • 求两个整数的平均值
    1普通实现1求两个整数的平均值,最简单的实现方法就是两个数相加再除以二。intmean(intx,inty){return(x+y)/2;}如果mean的参数是INT_MAX呢?就溢出了.2普通实现2我们使用右移运算符。intmean1(intx,inty){return(x+y)>>1;}类似3普通实现3那么......
  • 整数平方和开根号的性能优化
    整数的平方和开根号操作通过sqrt实现性能已经不容易优化,但如果要求精度不高,可以进一步优化,方法有三种:1、isqrt;2、查表法;3、三角函数法1、isqrt即整数平方根,有多种算法。通过询问ChatGPT,AI给出了几种实现,这里取一种比较快的实现:1u32isqrt2(u32x)2{3u32res=0;......
  • HDU 1042 N! (大整数阶乘)
    这道题开始并不会,是看了别人的代码,自己又改造了一下,代码如下:(PS:这个时候自带大整数运算的java就有优势了)#include<bits/stdc++.h>usingnamespacestd;constintN=20000+10;intans[N];voidfact(intn){ans[0]=ans[1]=1;inttot=1;for(inti=......
  • 调整数组顺序使奇数位于偶数前面
    输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数在数组的前半部分,所有偶数在数组的后半部分。示例:输入:nums= [1,2,3,4]输出:[1,3,2,4]注:[3,1,2,4]也是正确的答案之一。提示:0<=nums.length<=500000<=nums[i]<=10000int*exchange(int*nums,......
  • HashMap内部的bucket(桶)数组长度为什么一直都是2的整数次幂?
    这样做有两个好处:第一,可以通过(table.length-1)&key.hash()这样的位运算快速寻址,第二,在HashMap扩容的时候可以保证同一个桶中的元素均匀的散列到新的桶中,具体一点就是同一个桶中的元素在扩容后一半留在原先的桶中,一半放到了新的桶中。......
  • 带有PV面板和电池的孤岛微电网的混合整数线性规划(MILP)调度
    带有PV面板和电池的孤岛微电网的混合整数线性规划(MILP)调度测试环境:MATLAB,YALMIP,GUROBI将负荷和太阳辐射预测作为输入。返回计划范围内(例如一周)的每个组件的计划。试图最大程度地减少甩负荷和减少发电量。ID:14100644860196918......
  • 充电站位置规划22 建立了混合整数编程(MIP)模型 在模型优化部分中,我们通过人口分布划分
    充电站位置规划221.建立了混合整数编程(MIP)模型。对于农村来说,交通网络并不像他们的城市同行那样强大。充电站可以辐射到应考虑的周围区域,因此纸张使用加权Vorinor图模型(WVDM)来分析该方面。对于城市的充电站,考虑了交通流量的效果。同时,引入排队理论以计算驱动程序的平均等待时......
  • 两整数的加法
    一、内容简介:本题目要求读入2个整数A和B,然后输出它们的和(在一行中输入2个绝对值不超过1000的整数A和B)。二、思路:1、输入两个整数2、输出它们的和三、流程图:  四、代码实现:#include<iostream>usingnamespacestd;intmain(){inta,b,sum;cin>>a>>b;sum=a+b;cou......
  • 数组反转和扩缩容
    数据反转实现思想:数组对称位置的元素互换。publicstaticvoidarrayResever(int[]arr){for(Objecto:arr){System.out.println(o);}System.out.println("-----------------");for(inti=0;i<arr.length/2;......