前言
改年号了,还来水一水
正文
问题来源
本问题来自leetcode上的165题。
问题描述
比较两个版本号 version1 和 version2。
如果 version1 > version2 返回 1,如果 version1 < version2 返回 -1, 除此之外返回 0。
你可以假设版本字符串非空,并且只包含数字和 . 字符。
. 字符不代表小数点,而是用于分隔数字序列。
示例 1
输入: version1 = "0.1", version2 = "1.1"
输出: -1
示例 2
输入: version1 = "1.0.1", version2 = "1"
输出: 1
分析:
func compareVersion(version1 string, version2 string) int {
vs1 := strings.Split(version1, ".")
vs2 := strings.Split(version2, ".")
vl1 := len(vs1)
vl2 := len(vs2)
flag := 1
if vl1 < vl2 {
vl2, vl1 = vl1, vl2
vs1, vs2 = vs2, vs1
flag = -1
}
for i:=0; i < vl1 ; i++ {
n1, _ := strconv.Atoi(vs1[i])
var n2 int
if i >= vl2 {
n2 = 0
} else {
n2, _ = strconv.Atoi(vs2[i])
}
if n1 > n2 {
return flag
} else if n1 < n2 {
return -1*flag
}
}
return 0
}
总结:
听了一首爱缪的歌,想奋发向上,没想到只是水了道
结语
不要懒,多看多写。