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