比较版本号

题目:

比较两个版本号 version1 和 version2。
如果 version1 > version2 返回 1,如果 version1 < version2 返回 -1, 除此之外返回 0。
你可以假设版本字符串非空,并且只包含数字和 . 字符。
. 字符不代表小数点,而是用于分隔数字序列。
例如,2.5 不是“两个半”,也不是“差一半到三”,而是第二版中的第五个小版本。
你可以假设版本号的每一级的默认修订版号为 0。例如,版本号 3.4 的第一级(大版本)和第二级(小版本)修订号分别为 3 和 4。其第三级和第四级修订号均为 0。

示例:

输入:version1 = "1.01", version2 = "1.001"
输出:0
解释:忽略前导零,“01” 和 “001” 表示相同的数字 “1”。

解题方法:

这道题其实比想象中的要简单,主要原因是版本号的前导0是不影响版本号大小比较。
处理流程就是:

  • 将版本号分割,并转成数字;
  • 按照顺序比较相同位置的两个数组;

代码和结果:

class Solution {
public:
    void split(string s,vector &n)
    {
        string t="";
        for(int i=0;i n1,n2;
        split(version1,n1);
        split(version2,n2);
        int sz1=n1.size();
        int sz2=n2.size();
        int mxz=sz1=sz1) k1=0;
            else k1=n1[i];
            if(i>=sz2) k2=0;
            else k2=n2[i];
            if(k1>k2)   return 1;
            else if(k1

运行结果:

原题链接:https://leetcode-cn.com/problems/compare-version-numbers/

你可能感兴趣的:(比较版本号)