11.17号,电话面试饿了么测试岗位
其中的一个算法题,当时没有想好思路哦。
例如两个版本号,怎么比较大小呢?
例如v1=‘1.1.2’
v2=‘1.1.2.1’
思路就是先转换成列表,然后判断分割后的长度大小哦,
在进行遍历比较就可以了哦!
电话面试的话,优点就是自己可以放松,没有面对面那么紧张的感觉了哦!但是可能通过率未必可以像现场那么好哦。
代码如下哦
比较两个版本的大大小
import re
def versionCompare(v1=“1.1.1”, v2=“1.2”):
v1_check = re.match("\d+(.\d+){0,2}", v1)
v2_check = re.match("\d+(.\d+){0,2}", v2)
if v1_check is None or v2_check is None or v1_check.group() != v1 or v2_check.group() != v2:
return “版本号格式不对,正确的应该是x.x.x,只能有3段”
v1_list = v1.split(".")
v2_list = v2.split(".")
v1_len = len(v1_list)
v2_len = len(v2_list)
if v1_len > v2_len:
for i in range(v1_len - v2_len):
v2_list.append(“0”)
elif v2_len > v1_len:
for i in range(v2_len - v1_len):
v1_list.append(“0”)
else:
pass
for i in range(len(v1_list)):
if int(v1_list[i]) > int(v2_list[i]):
return “v1大”
if int(v1_list[i]) < int(v2_list[i]):
return “v2大”
return “相等”
v1=‘1.21’
v2=‘19.1.1’
print(versionCompare(v1,v2))