我覺得我寫的應該是沒什麼問題,帶了很多筆數字測驗也ok,但是測資時1534236469這個數字不行,可是1534236469的確在-231 <= x <=231-1的範圍內,所以應該不會要return 0
阿,還是我的程式碼有錯的地方?
沒刷過leetcode 不過看了一下你這題的要求,好像是說輸入一個整數然後把它反轉,如果有帶負號的在反轉後要保留負號,然後判斷反轉後的數字如果是在正負2的23次方範圍內就傳回該值,超出範圍的就傳回0,如果我理解沒錯的話,應該可以這樣寫...(ps.您寫的我就不去抓是哪的問題了)
def reverse1(x):
res_str=x.replace("-","")[::-1]
if "-" in x: res_str="-"+res_str
if -2**31<int(res_str)<2**31:
return int(res_str)
else:
return 0
while 1:
xx=input("Input: x = ")
print("Output:",reverse1(xx))
結果:
Input: x = 123
Output: 321
Input: x = -123
Output: -321
Input: x = 1534236469
Output: 0
1534236469 倒轉為 9646324351 確實超出範圍 所以傳回 0
若輸入 9646324351 會傳回 1534236469 因為倒轉值在範圍內