2017-05-14 3 views
-1

整数の逆数です。 X = 123、321 例2を返す:例17.逆整数はPythonを使って動作させることができません。整数の時間を超えていますか?

、X = -123 -321

注意を返す:入力は、32ビット符号付き整数であると仮定される を。逆整数がオーバーフローすると、関数は0を返します。ここで

class Solution(object): 
    def reverse(self, x): 
     """ 
     :type x: int 
     :rtype: int 
     """ 
     ret=0 
     while x!=0: 
      ret=ret*10+x%10 
      x=x/10 
      if ret<=-2147483648 or ret >= 2147483647: 
       return 0 
     return ret 
+0

これはどのPythonバージョンですか? Python 3では、 '/'の代わりに '/'を使うのがよいでしょう。 –

答えて

1

、そのための作業コードである
class Solution(object): 
    def reverse(self, x): 
     """ 
     :type x: int 
     :rtype: int 
     """ 
     ret=0 
     neg_flag = False 
     if x<0: 
      neg_flag = True 
      x = x*(-1) 
     while x!=0: 
      ret=ret*10+x%10 
      x=x/10 
      if ret<=-2147483648 or ret >= 2147483647: 
       return 0 
     if neg_flag: 
      ret = ret * -1 
     return ret 

・ホープ、このことができます!

+0

私はなぜ-321%10が-1と等しくないのか分かりません。 –

+0

%がモジュラスに使用されます。したがって、10で除算すると、残りの部分は%記号によって返されます。 – zenwraight

0

文字列に変換してからintに戻すだけです。それはあなたが割り当てをしているように見えるので、不正行為かもしれません。

class Solution(object): 
    def reverse(self, x): 
     """ 
     :type x: int 
     :rtype: int 
     """ 
     y = str(x) 
     if y[0] = "-": 
      ret = int("-" + y[1:][::-1]) 
     else: 
      ret = int(y[::-1]) 
     if ret<=-2147483648 or ret >= 2147483647: 
      return 0 
     return ret 
+0

あなたのご協力ありがとうございます。私はpythonで切断操作を使用すると、より多くの時間の使用につながると思います –

関連する問題