LeetCode Golang 7. 整数反转
发布时间:2020-12-16 09:31:03 所属栏目:大数据 来源:网络整理
导读:? 7. 整数反转 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。 Tips :? Math包给出的类型大小的边界: // Integer limit values.const (MaxInt8 = 17 - 1MinInt8 = -1 7MaxInt16 = 115 - 1MinInt16 = -1 15MaxInt32 = 131 - 1MinInt3
? 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)) } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |