1. 程式人生 > >【leetcode】Python實現-7.顛倒整數

【leetcode】Python實現-7.顛倒整數

7.顛倒整數

給定一個範圍為 32 位 int 的整數,將其顛倒。

例 1:

輸入: 123
輸出: 321

例 2:

輸入: -123
輸出: -321

例 3:

輸入: 120
輸出: 21

注意:

假設我們的環境只能處理 32 位 int 範圍內的整數。根據這個假設,如果顛倒後的結果超過這個範圍,則返回 0。

我:

 l = list(str(x))
        n = len(l)
        for i in range(n-1,0,-1):
            if l[i] != '0':
                l = l[:i+1
] break if l[0] =='-': l = l[:0:-1] l.insert(0,'-') else: l = l[::-1] return int(''.join(l))

other1:

 x = int(str(x)[::-1]) if x >0 else -int(str(-x)[::-1])
return x if x < 2147483648 and x >-2147483648
else 0

other2:

        sign = x < 0 and -1 or 1
        x = abs(x)
        ans = 0
        while x:
            ans = ans * 10 + x % 10
            x /= 10
        return sign * ans if ans <= 0x7fffffff else 0

總結:
1.python中字串就可以完成分片操作,不需要再轉換為list。用一個新的資料物件時要考慮清楚為什麼用;
2.正數和負數只相差一個符號!如例2中設定一個符號位。1與任何數與都為任何數,0與任何數與都為0。與1 或是為了將0變為1.
3.對於32位的限制,去掉一個符號位,還剩31位。所以範圍是正負2的31次方之間,可以像例2一樣表示0x7ffffff.