LeetCode Reverse Integer (ValueError: invalid literal for int() with base 10: '' )
LeetCode Reverse Integer (ValueError: invalid literal for int() with base 10: '' )
给定一个带符号的 32 位整数 x,return x 的数字反转。如果反转 x 导致值超出带符号的 32 位整数范围 [-2**31, 2**31 - 1],则 return 0.
假设环境不允许您存储 64 位整数(有符号或无符号)。
这是我的提交
class Solution(object):
def reverse(self, x):
sp= str(abs(x))[::-1].lstrip("0")
ans= int(sp)
if x > 0 :
return ans
else:
return -1*ans
int() 方法应该允许我传递一个字符串值 ("12"),但它 return 是一个错误,指出它是 int() 的无效文字。
第 3 行的变量 sp 是 a str 而不是 float,所以我不知道为什么它不是 运行 在 leetcode 提交页面上,因为它 运行 在 VSCode 上没问题。
有没有我错过的评分指南?
而且,这是我得到的值错误
错误说你尝试 int() None 字符串或字母而不是数字所以在 int()[=17 之前检查变量 sp =]
试试这个
class Solution(object):
def reverse(self, x):
sp= str(abs(x))[::-1].lstrip("0")
if not sp:
return 0
ans= int(sp)
if x > 0 :
return ans
else:
return -1*ans
原始代码有两个问题:(1)它不会处理零,(2)缺少问题描述中的范围检查。
对于零,字符串表示为"0"
。但是在调用lstrip("0")
之后,它将是空字符串,int
不会接受。这可以通过对零进行特殊情况检查来解决。一个更简单的解决方法(由 Mark 建议)是不去除前导零。
对于范围检查,如果值超出范围,只需添加对 return 零的检查。
这是包含两个修复程序的更新版本。请注意,此版本省略了 strip("0")
调用,它修复了零大小写:
class Solution(object):
def reverse(self, x):
sp = str(abs(x))[::-1]
ans = int(sp)
if x < 0:
ans = -ans
if ans < -2**31 or ans > 2**31 - 1:
return 0
return ans
这应该能正确处理所有测试用例。
给定一个带符号的 32 位整数 x,return x 的数字反转。如果反转 x 导致值超出带符号的 32 位整数范围 [-2**31, 2**31 - 1],则 return 0.
假设环境不允许您存储 64 位整数(有符号或无符号)。
这是我的提交
class Solution(object):
def reverse(self, x):
sp= str(abs(x))[::-1].lstrip("0")
ans= int(sp)
if x > 0 :
return ans
else:
return -1*ans
int() 方法应该允许我传递一个字符串值 ("12"),但它 return 是一个错误,指出它是 int() 的无效文字。
第 3 行的变量 sp 是 a str 而不是 float,所以我不知道为什么它不是 运行 在 leetcode 提交页面上,因为它 运行 在 VSCode 上没问题。
有没有我错过的评分指南?
而且,这是我得到的值错误
错误说你尝试 int() None 字符串或字母而不是数字所以在 int()[=17 之前检查变量 sp =]
试试这个
class Solution(object):
def reverse(self, x):
sp= str(abs(x))[::-1].lstrip("0")
if not sp:
return 0
ans= int(sp)
if x > 0 :
return ans
else:
return -1*ans
原始代码有两个问题:(1)它不会处理零,(2)缺少问题描述中的范围检查。
对于零,字符串表示为"0"
。但是在调用lstrip("0")
之后,它将是空字符串,int
不会接受。这可以通过对零进行特殊情况检查来解决。一个更简单的解决方法(由 Mark 建议)是不去除前导零。
对于范围检查,如果值超出范围,只需添加对 return 零的检查。
这是包含两个修复程序的更新版本。请注意,此版本省略了 strip("0")
调用,它修复了零大小写:
class Solution(object):
def reverse(self, x):
sp = str(abs(x))[::-1]
ans = int(sp)
if x < 0:
ans = -ans
if ans < -2**31 or ans > 2**31 - 1:
return 0
return ans
这应该能正确处理所有测试用例。