题解 | #比较版本号#
比较版本号
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 } } }