package main

import (
	"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"))
// }