package main
import (
"strconv"
"strings"
)
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* 比较版本号
* @param version1 string字符串
* @param version2 string字符串
* @return int整型
*/
func compare( version1 string , version2 string ) int {
// write code here
s1 := strings.Split(version1, ".") //按照.号拆分成数组
s2 := strings.Split(version2, ".")
i := 0
j := 0
for i < len(s1) && j < len(s2) { // 遍历判断
a, _ := strconv.Atoi(s1[i])
b, _ := strconv.Atoi(s2[j])
if a > b { // 若s1的元素>s2的元素
return 1
} else if a < b {
return -1
} else {
if i == len(s1)-1 && j == len(s2)-1 { //判断是否是最后一个修订号,若是,说明相等,返回0
return 0
}
}
i++
j++
}
for i < len(s1) { // 判断前面循环结束是否是s2先结束导致的
a, _ := strconv.Atoi(s1[i])
if a > 0 { // 剩余修订号任意找到一个大于0的数,则a>b
return 1
}
i++
}
for j < len(s2) { // 判断前面循环结束是否是s1先结束导致的
b, _ := strconv.Atoi(s2[j])
if b > 0 { // 剩余修订号任意找到一个大于0的数,则a<b
return -1
}
j++
}
return 0 // 按理不可能走到这一步的。。。
}