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