LeetCode 165. Compare Version Numbers

2020-02-14 15:04:00 浏览数 (1)

题目

题意:比较两个版本的大小

题解:

代码语言:javascript复制
class Solution {
public:
    int ver1[1005];
    int pos1;
    int pos2;
    int ver2[1005];
    int compareVersion(string version1, string version2) {
        
        int i,j;
        string s="";
        for(i=0;i<version1.length();i  )
        {
            if(version1[i]=='.')
            {
                ver1[pos1]=fun(s);
                pos1  ;
                s="";
            }
            else
            {
                s =version1[i];
            }
        }
        ver1[pos1  ]=fun(s);
                        
        s="";
                        
        for( i=0;i<version2.length();i  )
        {
            if(version2[i]=='.')
            {
                ver2[pos2]=fun(s);
                pos2  ;
                s="";
            }
            else
            {
                s =version2[i];
            }
        }
        ver2[pos2  ]=fun(s);
        
        int ans=0;
        
        for( i=0,j=0;i<pos1&&j<pos2;i  ,j  )
        {
            if(ver1[i]>ver2[j])
            {
                return 1;
            }
            else if(ver1[i]<ver2[j])
            {
                return -1;
            }
        }
        
        if(i==pos1&&j!=pos2)
        {
            for(int k=j;k<pos2;k  )
            {
                if(ver2[k]!=0)
                    return -1;
            }
        }
        
        if(i!=pos1&&j==pos2)
        {
            for(int k=i;k<pos1;k  )
            {
                if(ver1[k]!=0)
                    return 1;
            }
        }
        
        return 0;
    }
    
    int fun(string str)
    {
        string s="";
        for(int i=0;i<str.length();i  )
        {
            if(str[i]=='0'&&s=="")
            {
                continue;
            }
            s =str[i];
            
        }
        if(s=="")
            s="0";
        return atoi(s.c_str());
    }
};

0 人点赞