leetcode165 比较版本号

leetcode165 Compare Version Numbers

Posted by BY on January 2, 2019

前言

改年号了,还来水一水

正文

问题来源

本问题来自leetcode上的165题。

问题描述

比较两个版本号 version1 和 version2。
如果 version1 > version2 返回 1,如果 version1 < version2 返回 -1, 除此之外返回 0。
你可以假设版本字符串非空,并且只包含数字和 . 字符。
. 字符不代表小数点,而是用于分隔数字序列。

示例 1
输入: version1 = "0.1", version2 = "1.1"
输出: -1
示例 2
输入: version1 = "1.0.1", version2 = "1"
输出: 1

分析:

func compareVersion(version1 string, version2 string) int {
    vs1 := strings.Split(version1, ".")
    vs2 := strings.Split(version2, ".")
    vl1 := len(vs1)
    vl2 := len(vs2)
    flag := 1
    if vl1 < vl2 {
        vl2, vl1 = vl1, vl2
        vs1, vs2 = vs2, vs1
        flag = -1
    }
    for i:=0; i < vl1 ; i++ {
        n1, _ := strconv.Atoi(vs1[i])
        var n2 int
        if i >= vl2 {
            n2 = 0
        } else {
            n2, _ = strconv.Atoi(vs2[i])
        }
        if n1 > n2 {
            return flag
        } else if n1 < n2 {
            return -1*flag
        }
    }
    return 0
}

总结:

听了一首爱缪的歌,想奋发向上,没想到只是水了道

结语

不要懒,多看多写。