1. 程式人生 > >165 Compare Version Numbers 比較版本號

165 Compare Version Numbers 比較版本號

序列 logs 兩個 body size string 一半 3.3 例如

比較兩個版本號 version1 和 version2。
如果 version1 大於 version2 返回 1,如果 version1 小於 version2 返回 -1, 除此以外 返回 0。
您可能認為版本字符串非空,並且只包含數字和 . 字符。
這個 . 字符不代表小數點,而是用於分隔數字序列。
例如,2.5 不是“兩個半”或“差一半到三個版本”,它是第二個第一級修訂版本的第五個二級修訂版本。
以下是版本號排序的示例:
0.1 < 1.1 < 1.2 < 13.37

詳見:https://leetcode.com/problems/compare-version-numbers/description/

class Solution {
public:
    int compareVersion(string version1, string version2) {
        int val1=0,val2=0;
        int idx1=0,idx2=0;
        while(idx1<version1.size()||idx2<version2.size())
        {
            val1=0;
            while(idx1<version1.size())
            {
                if(version1[idx1]==‘.‘)
                {
                    ++idx1;
                    break;
                }
                val1=val1*10+version1[idx1++]-‘0‘;
            }
            val2=0;
            while(idx2<version2.size())
            {
                if(version2[idx2]==‘.‘)
                {
                    ++idx2;
                    break;
                }
                val2=val2*10+version2[idx2++]-‘0‘;
            }
            if(val1>val2)
            {
                return 1;
            }
            else if(val1<val2)
            {
                return -1;
            }
        }
        return 0;
    }
};

參考:https://www.cnblogs.com/grandyang/p/4244123.html

165 Compare Version Numbers 比較版本號