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 << 31
	MaxInt64  = 1<<63 - 1
	MinInt64  = -1 << 63
	MaxUint8  = 1<<8 - 1
	MaxUint16 = 1<<16 - 1
	MaxUint32 = 1<<32 - 1
	MaxUint64 = 1<<64 - 1
)

  

思路: Itoa --> 字符串反转 --> Atoi --> 判断大小

package main

import (
	"fmt"
	"math"
	"reflect"
	"strconv"
	"unsafe"
)

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

// 假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−2^31,  2^31 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。

func reverse(x int) int {

	if x < 10 && x > -10 {
		return x
	}

	flag := 1 // 正负标志位 1 表示为正, -1表示为负
	rst := x

	if x < 0 {
		flag = -1
		rst *= flag // 转换为正数方便操作
	}

	rstString := ""
	tmpString := strconv.Itoa(rst)
	for i:=len(tmpString)-1;i>=0;i--{
		rstString += string(tmpString[i])
	}
	//fmt.Println(rstString)

	rst,err := strconv.Atoi(rstString)
	if err != nil || rst > math.MaxInt32{
		//fmt.Println("Atoi Error : ",err)
		return 0
	}

	return rst * flag
}

//-2147483648到2147483647
// 9646324351

func main() {
	x := reverse(1534236469)
	fmt.Println(x,reflect.TypeOf(x),unsafe.Sizeof(x))
}

  

原文地址:https://www.cnblogs.com/gettolive/p/10204820.html

时间: 2024-11-06 03:54:25

LeetCode Golang 7. 整数反转的相关文章

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】7. 整数反转

题目 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示例?1:输入: 123 输出: 321 ?示例 2:输入: -123 输出: -321 示例 3:输入: 120 输出: 21 注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为?[?231,? 231?? 1].请根据这个假设,如果反转后整数溢出那么就返回 0. 解题思路 将数字转换成单个字符的列表,进行字符的处理 代码 class Solution: def reverse(self, x:

【LeetCode】7. 整数反转python3

题目 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示例?1:输入: 123 输出: 321 ?示例 2:输入: -123 输出: -321 示例 3:输入: 120 输出: 21 注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为?[?231,? 231?? 1].请根据这个假设,如果反转后整数溢出那么就返回 0. 解题思路 将数字转换成单个字符的列表,进行字符的处理 代码 class Solution: def reverse(self, x:

leetcode:7. 整数反转

题目描述: 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示例: 输入: 123 输出: 321 输入: -123 输出: -321 输入: 120 输出: 21 注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231,  231 − 1].请根据这个假设,如果反转后整数溢出那么就返回 0. 思路分析: 这道题是easy,实际上思路是比较简单的,首先用一个数组逆向的存储整数各位,再遍历一次数组,重新构建一遍即可.但是由于这个整数溢出问题,我

【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 第7题 整数反转

LeetCode 第7题 整数反转 题目描述 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 整体思路 这道题在LeetCode的题目中是非常简单的,尤其是用Python来解决.我们都知道在Python中int类型和str类型是可以相互转换的:int(str) 或者 str(int).因此这道题中,我们仅需要将input中的int类型转换为str类型然后翻转字符串即可. 翻转字符串我们用到的方法是str[::-1].在这个语句中,'-1'指的是step(步长)的意思,取

整数反转

给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示例 1: 输入: 123 输出: 321  示例 2: 输入: -123 输出: -321 示例 3: 输入: 120 输出: 21 注意: 假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231,  231 − 1].请根据这个假设,如果反转后整数溢出那么就返回 0. /* * @lc app=leetcode.cn id=7 lang=javascript * * [7] 整数反转 */ /**

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

力扣题目汇总(加一,旋转数组,整数反转)

力扣题目汇总(加一,旋转数组,整数反转) 加一 1.题目描述 给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一. 最高位数字存放在数组的首位, 数组中每个元素只存储一个数字. 你可以假设除了整数 0 之外,这个整数不会以零开头. 示例 1: 输入: [1,2,3] 输出: [1,2,4] 解释: 输入数组表示数字 123. 示例 2: 输入: [4,3,2,1] 输出: [4,3,2,2] 解释: 输入数组表示数字 4321. 2.解题思路 #错误思路 列表最后一位加1,判断最后