题解 | #比较版本号#
比较版本号
https://www.nowcoder.com/practice/2b317e02f14247a49ffdbdba315459e7
package main import "strings" import "strconv" /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * 比较版本号 * @param version1 string字符串 * @param version2 string字符串 * @return int整型 */ func compare(version1 string, version2 string) int { var1, var2 := strings.Split(version1, "."), strings.Split(version2, ".") length := min(len(var1), len(var2)) i := 0 for ; i < length; i++ { n1, n2 := toNum(var1[i]), toNum(var2[i]) if n1 > n2 { return 1 } else if n1 < n2 { return -1 } } if len(var1) > len(var2) { for ;i<len(var1);i++ { if toNum(var1[i]) > 0 { return 1 } } } else if len(var1) < len(var2) { for ;i<len(var2[i]);i++ { if toNum(var2[i]) > 0 { return -1 } } } return 0 } func toNum(str string) int { res, _ := strconv.Atoi(str) return res } func min(n1, n2 int) int { if n1 < n2 { return n1 } return n2 }