| 1234567891011121314151617181920212223242526272829303132333435363738394041 | package mainimport (	"strconv")func compareVersion(version1 string, version2 string) int {	idx1, idx2 := 0, 0	for idx1 < len(version1) || idx2 < len(version2) {		part1 := nextPartOfVersion(version1, &idx1)		part2 := nextPartOfVersion(version2, &idx2)		if part1 < part2 {			return -1		} else if part1 > part2 {			return 1		}	}	return 0}func nextPartOfVersion(version string, beg *int) int {	length := len(version)	if *beg >= length {		return 0	}	var end int	for end = *beg + 1; end < length; end++ {		if version[end] == '.' {			break		}	}	val, _ := strconv.Atoi(version[*beg:end])	*beg = end + 1	return val}// func main() {// 	println(compareVersion("1.0.1", "1"))// 	println(compareVersion("1.0.1", "2"))// 	println(compareVersion("1.0.0.0", "1"))// }
 |