Pythonはデジタルの文字列を変換するために、INT()関数を使用していません

Leetcodeに、スペース、および小数点を含めていない他の数字ではない文字、 - 「」変換のいくつかの方法がここに記号を含まれていない質問8これらを含みます。この方法は、本明細書にデジタル12356に「12356」と同様にのみ適用可能です。

方法1:機能strを使用します

Int関数を使用することはできません、我々は文字の各デジタル表現の0-9 STR機能を識別することができます

デフATOI(S):
    S = sで[:: 1]   将S反转 
    NUM = 0
     のための I、V 列挙(S)
         のための J における範囲(0,10 ):
             もし Vの==のSTR(J) :
                NUM + = jは*(10 ** I)
     の戻り NUM

方法2:ORD機能を使います

ASCIIコードのマイナス0内の各文字のASCIIコードを見つけるために、ORD機能を使用すると、デジタルの各ビットのために決定されます

印刷(ワード(' 1 '))   49 
プリント(ワード(' 0 '))   48
DEF atoi2(S):
    S = sで[:: 1 ] 
    NUM = 0
     のための I、V 列挙(S):
        NUM + =(ORD(V)-ord(' 0 '))*(10 ** I)
     リターン NUM

方法3:eval関数使用

関数eval関数strの式を評価し、結果を返す有効な文字列として機能することです。式1を用いて構成され、すべての文字が乗算され、その後、各文字の数を取得するためにデジタル評価関数に変換します。

DEF atoi3(S):
    S = sで[:: 1 ] 
    NUM = 0
     のための I、V 列挙(S):
        T = ' %S * 1 '%のV 
        、N = evalの(T)
        NUM + = N *(10 ** I)
     のリターン NUM

 

おすすめ

転載: www.cnblogs.com/pororo-dl/p/11751560.html