問題
原文
Given a signed 32-bit integer
x
, returnx
with its digits reversed. If reversingx
causes the value to go outside the signed 32-bit integer range[-231, 231 - 1]
, then return0
.Assume the environment does not allow you to store 64-bit integers (signed or unsigned).
Example 1:
12 Input: x = 123Output: 321Example 2:
12 Input: x = -123Output: -321Example 3:
12 Input: x = 120Output: 21
Constraints:
-231 <= x <= 231 - 1
内容
符号付32ビット整数xが与えられます。xの各桁を反転させて返してください。
符号付32ビット整数の範囲を越える場合は0を返してください。
64ビット整数(符号付き、符号なし)を使えない環境だとする。
※正しくない可能性があります。
方針
前提
実装のイメージ
解答
解答1:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
class Solution: def reverse(self, x: int) -> int: if x >= 0: x = str(x) x = x[::-1] x = int(x) print(x) else: x = str(x) x = x[1:] x = x[::-1] x = "-" + x x = int(x) if x>=2**31 or x<-2**31-1: #★ return 0 else: return x |
最初の解答。
こんなので良い訳はないのだけど通った。
だけど★のコメントを付けている行は間違っている気がする。
解答2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
class Solution: def reverse(self, x: int) -> int: if x >= 0: x = str(x) x = x[::-1] x = int(x) print(x) else: x = str(x) x = x[1:] x = x[::-1] x = "-" + x x = int(x) if x>2**31-1 or x<-2**31: return 0 else: return x |
他の人の解答を見て解き方・書き方を勉強する。
解答3
補足・参考・感想
■補足
・singed 32bit integer符号付き32ビット整数
英語での言い回しを覚えるのも大切だと思う。
■参考
コメント