LeetCodeブラシノート165:比較バージョン番号(Python実装)
タイトルの説明:
2つのバージョン番号version 1とversion 2を比較します.
バージョン文字列は空ではなく、数字と
たとえば、
バージョン番号の各レベルのデフォルトのリビジョン番号は
例1:
例2:
例3:
例4:
例5:
ヒント:
考え方:
まず、文字列を整数に変換し、一人一人を比較することが考えられるはずです.しかし、これは問題があります.そして「.」と"."間の数の左に0の問題があり、pythonを使うのは非常に簡単で、split()メソッドを呼び出すだけで、文字列の中の"."削除し、各部分を個別に取り出し、強制的にintタイプに変換することもできます.2つの文字列の長さが異なる場合は、短い文字列の最後に0を補うだけです.
Solution:
2つのバージョン番号version 1とversion 2を比較します.
version1 > version2
が1
を返し、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