题解 | #比较版本号#
比较版本号
https://www.nowcoder.com/practice/2b317e02f14247a49ffdbdba315459e7
package main
import (
"strconv"
)
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* 比较版本号
* @param version1 string字符串
* @param version2 string字符串
* @return int整型
*/
func compare(version1 string, version2 string) int {
// write code here
r1 := []rune(version1)
r2 := []rune(version2)
l1 := len(r1)
l2 := len(r2)
var i, j int
for i, j = 0, 0; ; {
if i < l1 || j < l2 {
var num1 int64 = 0
for {
if i < l1 && string(r1[i]) != "." {
node, _ := strconv.ParseInt(string(r1[i]), 10, 64)
num1 = num1*10 + node
i++
}else {
i++
break
}
}
var num2 int64 = 0
for {
if j < l2 && string(r2[j]) != "." {
node, _ := strconv.ParseInt(string(r2[j]), 10, 64)
num2 = num2*10 + node
j++
}else {
j++
break
}
}
if num1 > num2 {
return 1
} else if num1 < num2 {
return -1
}
} else {
return 0
}
}
}

深信服公司福利 896人发布