OJ练习34——T165 Compare Version Numbers

比较版本高低。

版本的格式:1.1.1

可能有多个分隔符。

相等则返回0, 大于返回1, 小于返回-1.

【思路】

分别比较分隔符的每段,转换成十进制后的大小;

相等则继续比较下一段,不等则返回相应的结果。

【my code】

int compareVersion(string version1, string version2) {
        int v1a=0,v1b=0,v2a=0,v2b=0;
        int i=0, j=0;
        int len1=version1.size(), len2=version2.size();
        while(i<len1||j<len2){
        while(version1[i]!='.'&&i<len1){
            v1a=v1a*10+version1[i]-'0';
            i++;
        }
        while(version2[j]!='.'&&j<len2){
            v2a=v2a*10+version2[j]-'0';
            j++;
        }
        if(v1a==v2a){
            i++;
            j++;
            v1a=0;
            v2a=0;
            continue;
        }
        else if(v1a>v2a)
            return 1;
        else
            return -1;
        }
        return 0;
    }

【评价】

用时:2ms,在c的范围内,结果比较好。

可取可取。

原文地址:https://www.cnblogs.com/ketchups-notes/p/4462302.html