Python
 Computer >> コンピューター >  >> プログラミング >> Python

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

  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) この関数は

  2. Pythonで数値を比較する方法は?

    Pythonで関係演算子を使用して、Pythonの数値(floatとintの両方)を比較できます。これらの演算子は、それらの両側の値を比較し、それらの間の関係を決定します。変数aが10を保持し、変数bが20を保持すると仮定すると、 演算子 例 == (a ==b)は正しくありません。 != (a!=b)は真です。 b)は正しくありません。 (a