题解 | #比较版本号#
比较版本号
https://www.nowcoder.com/practice/2b317e02f14247a49ffdbdba315459e7
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 比较版本号
# @param version1 string字符串
# @param version2 string字符串
# @return int整型
#
class Solution:
def compare(self , version1: str, version2: str) -> int:
# write code here
d1 = {}
d2 = {}
c1 = 0
c2 = 0
a1,a2 = -1,-1
for i in range(len(version1)):
if version1[i] != ".":
d1[c1] = version1[a1+1:i+1]
else:
c1 += 1
a1 = i
for i in range(len(version2)):
if version2[i] != ".":
d2[c2] = version2[a2+1:i+1]
else:
c2 += 1
a2 = i
print(d1,d2)
def largeOrNot(dic1,dic2,mod):
for i in dic1.keys():
print(mod)
print(dic1)
if int(dic1[i]) > int(dic2[i]):
return mod
elif int(dic1[i]) < int(dic2[i]):
return -mod
large2 = False
if len(dic1)<len(dic2):
for j in range(len(dic1),len(dic2)-1):
if dic2[j] != 0:
large2 = True
if dic1.keys == dic2.keys or not large2:
return 0
else:
return -mod
mod = 1 if len(d1)<=len(d2) else -1
return largeOrNot(d1,d2,mod) if len(d1)<=len(d2) else largeOrNot(d2,d1,mod)
