Pythonでバージョン番号を比較する
2つのバージョン番号version1とversion2を比較する必要があるとします。 version1> version2の場合、1を返します。それ以外の場合、バージョン1<バージョン2の場合は-1を返します。それ以外の場合は0を返します。バージョン文字列は空ではなく、数字とドット(。)文字のみが含まれていると見なすことができます。ドット文字は小数点を表すものではなく、数値シーケンスを区切るために使用されます。したがって、たとえば、2.5は「2.5」または「バージョン3の途中」ではなく、2番目の第1レベルのリビジョンの5番目の第2レベルのリビジョンです。
バージョン番号の各レベルのデフォルトのリビジョン番号は0であると想定できます。たとえば、バージョン番号3.4の第1レベルと第2レベルのリビジョン番号のリビジョン番号は3と4です。その第3レベルと第4レベルのリビジョン番号は両方とも0です。
したがって、入力がversion1 =“ 1.0.1”およびversion2 =“ 1”の場合、+1が返されます。
これを解決するには、次の手順に従います-
-
version1_arr=バージョン1のドットで区切られた数値の配列
-
version2_arr=バージョン2のドットで区切られた数値の配列
-
0からversion1_arrのサイズおよびversion2_arrのサイズの最大値までの範囲のiの場合-
-
v1:=version1_arr [i] if i
-
v2:=version2_arr [i] if i
-
v1> v2の場合は1を返し、v1
-
-
0を返す
例(Python)
理解を深めるために、次の実装を見てみましょう-
class Solution: def compareVersion(self, version1, version2): versions1 = [int(v) for v in version1.split(".")] versions2 = [int(v) for v in version2.split(".")] for i in range(max(len(versions1),len(versions2))): v1 = versions1[i] if i < len(versions1) else 0 v2 = versions2[i] if i < len(versions2) else 0 if v1 > v2: return 1 elif v1 <v2: return -1 return 0 ob1 = Solution() print(ob1.compareVersion("1.0.1","1.0"))
入力
"1.0.1" "1.0"
出力
1
-
Pythonの乱数
説明 Pythonには、乱数を生成するための関数がほとんどありません。これらは、生成するために乱数が必要な多くのゲームや宝くじなどで使用できます。 乱数を生成する関数がいくつかあります- choice() この関数を使用して、数値のコレクションから1つの乱数を生成できます。 例 print (A random number from list : ,end=) print (random.choice([1, 4, 6, 100, 31])) 出力 A random number from list : 100 randrange(beg、end、step) この関数は
-
Pythonで数値を比較する方法は?
Pythonで関係演算子を使用して、Pythonの数値(floatとintの両方)を比較できます。これらの演算子は、それらの両側の値を比較し、それらの間の関係を決定します。変数aが10を保持し、変数bが20を保持すると仮定すると、 演算子 例 == (a ==b)は正しくありません。 != (a!=b)は真です。 b)は正しくありません。 (a