LeetCodeブラシノート165:比較バージョン番号(Python実装)

2161 ワード

タイトルの説明:
2つのバージョン番号version 1とversion 2を比較します.version1 version21を返し、version1 version2-1を返した場合、それ以外は0を返します.
バージョン文字列は空ではなく、数字と.文字しか含まれていないと仮定できます..文字は小数点ではなく、数値シーケンスを区切るために使用されます.
たとえば、2.5は「2つ半」ではなく、「半分から3つ差」ではなく、第2版の5番目の小バージョンです.
バージョン番号の各レベルのデフォルトのリビジョン番号は0と仮定できます.例えば、バージョン番号3.4の第1レベル(大バージョン)および第2レベル(小バージョン)の改訂番号は、それぞれ3および4である.その第3級と第4級の改訂番号はいずれも0である.
例1:
  : version1 = "0.1", version2 = "1.1"
  : -1

例2:
  : version1 = "1.0.1", version2 = "1"
  : 1

例3:
  : version1 = "7.5.2.4", version2 = "7.5.3"
  : -1

例4:
  :version1 = "1.01", version2 = "1.001"
  :0
  :     ,“01”   “001”         “1”。

例5:
  :version1 = "1.0", version2 = "1.0.0"
  :0
  :version1         ,                “0”。

ヒント:
         (.)           。             。
             ,             。

考え方:
まず、文字列を整数に変換し、一人一人を比較することが考えられるはずです.しかし、これは問題があります.そして「.」と"."間の数の左に0の問題があり、pythonを使うのは非常に簡単で、split()メソッドを呼び出すだけで、文字列の中の"."削除し、各部分を個別に取り出し、強制的にintタイプに変換することもできます.2つの文字列の長さが異なる場合は、短い文字列の最後に0を補うだけです.
Solution:
Class Solution:
    def compareVersion(self,version1,version2):
        '''
        
        :param version1: str
        :param version2: str
        :return: int
        '''
        v1 = version1.split(".")
        v2 = version2.split(".")
        for i in range(max(len(v1),len(v2))):
            if i >= len(v1):
                x1 = 0
            else:
                x1 = int(v1(i))
            if i >= len(v2):
                x2 = 0
            else:
                x2 = int(v2(i))
            if x1 > x2:
                return 1
            else:
                return -1
        return 0