LeetCode 第7题 整数反转

LeetCode 第7题 整数反转

题目描述

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

整体思路

这道题在LeetCode的题目中是非常简单的,尤其是用Python来解决。我们都知道在Python中int类型和str类型是可以相互转换的:int(str) 或者 str(int)。因此这道题中,我们仅需要将input中的int类型转换为str类型然后翻转字符串即可。
翻转字符串我们用到的方法是str[::-1]。在这个语句中,‘-1’指的是step(步长)的意思,取负号则表示顺序反向,第一个‘:’和第二个‘:‘前的数字省略,默认取0和len(str),因此起到了翻转字符串的作用。
在翻转字符串后,我们需要注意得到字符串的最后一位是否是‘-‘或‘+‘,如果是的话,则将其调整至新字符串的第一位。最后,我们将字符串转换为int即为最后的答案

代码实现

class Solution:
    def reverse(self, x: int) -> int:
        string = str(x)
        # Reverse the string
        string = string[::-1]
        # If the end of the string is '-' or '+', move it to the head of the string
        if string[-1] == '-' or string[-1] == '+':
            string = string[-1] + string[0:-1]
        answer = int(string)
        # Check whether the integer is within the legal range of int32
        if answer > 2**31-1 or answer < -2**31:
            return 0
        return int(string)

原文地址:https://www.cnblogs.com/meloyang/p/12299931.html

时间: 2024-11-05 22:51:22

LeetCode 第7题 整数反转的相关文章

LeetCode 第七题--整数反转

1. 题目 2.思路 1. 题目 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示例 1: 输入: 123输出: 321 示例 2: 输入: -123输出: -321示例 3: 输入: 120输出: 21 2. 思路   python的坑就在于取余,python的-123 %10 为7 -123 %-10 才为-3,还有就是/10 应该转化为int型,其余的就按照一位一位的弹出,然后判断是否溢出就可以了. class Solution: def reverse(sel

LeetCode第12题 整数转罗马数字

/* 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为两个并列的 1.12 写做 XII ,即为 X + II . 27 写做 XXVII, 即为 XX + V + II . 通常情况下,罗马数字中小的数字在大的数字的右边. 但也存在特例,例如 4 不写做 IIII,而是 IV.数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数

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

C# 算法题系列(二) 各位相加、整数反转、回文数、罗马数字转整数

各位相加 给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数. 示例: 输入: 38 输出: 2 解释: 各位相加的过程为:3 + 8 = 11, 1 + 1 = 2. 由于 2 是一位数,所以返回 2. 进阶:你可以不使用循环或者递归,且在 O(1) 时间复杂度内解决这个问题吗? 题目地址 https://leetcode-cn.com/problems/add-digits/ 代码模板 public class Solution { public int AddDigits

【Leetcode】【简单】【17. 整数反转】【JavaScript】

题目描述 7. 整数反转 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示例 1: 输入: 123输出: 321 示例 2: 输入: -123输出: -321示例 3: 输入: 120输出: 21注意: 假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231,  231 − 1].请根据这个假设,如果反转后整数溢出那么就返回 0. 来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/reverse

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.] 需考虑:反转以后

LeetCode Golang 7. 整数反转

7. 整数反转 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. Tips : Math包给出的类型大小的边界: // Integer limit values. const ( MaxInt8 = 1<<7 - 1 MinInt8 = -1 << 7 MaxInt16 = 1<<15 - 1 MinInt16 = -1 << 15 MaxInt32 = 1<<31 - 1 MinInt32 = -1 << 3

leetcode中第一题twosum问题解答算法的可行性证明

leetcode中第一题twosum问题解答算法的可行性证明 一.引入 关于leetcode中第一题twosum问题,网上已有不少高人做出过解答,并提出了切实可行的算法实现.我在解答该题时参考了博客http://www.zixue7.com/article-9576-1.html的解答.为让读者更直观地阅读和理解本文,先简要摘录以上博客的内容如下: 题目还原 Two Sum Given an array of integers, find two numbers such that they a

leetcode第9题-Palindrom Number

这是leetcode的第九题,相对来说比较简单,目的很简单,就是判断一个int型的数是不是回文数.但是有几点需要考虑: 负数应该没有回文数,要加判断!要注意额外的空间申请问题.判断是否是回文数势必要对一个数进行反转,反转的时候就要考虑溢出的问题.实现的代码如下: #include<stdio.h> bool isPalindrom(int x) { if(x<0) return false; else { int tmp=x; int sum=0; while(tmp) { sum=su