牛客网: BM22
题目: 字符串以'.'连接,从左到右编号,比较版本号大小
思路: 按'.'切割为字符串数组,双指针p1, p2均初始化为坐标0, 将p1与 p2指向部分转为数字进行比较,如果为空则默认为0不从数组中取字符串,直到p1与p2都达到数组末尾停止。
代码:
// gopackage main
// import "fmt"
import "strings"
import "strconv"/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** 比较版本号* @param version1 string字符串 * @param version2 string字符串 * @return int整型
*/
func compare( version1 string , version2 string ) int {// write code herev1 := strings.Split(version1, ".")v2 := strings.Split(version2, ".")i, j := 0, 0for ; i < len(v1) || j < len(v2); i,j = i+1, j+1 {ver1 := 0ver2 := 0if i < len(v1) {v, _ := strconv.Atoi(v1[i])ver1 += v}if j < len(v2) {v, _ := strconv.Atoi(v2[i])ver2 += v}if ver1 > ver2 {return 1} else if ver1 < ver2 {return -1}}if i < len(v1) {return 1} else if j < len(v2) {return -1} else {return 0}}