2018年2月4日 星期日

[165] Compare Version Numbers

比對版本號again~~~~~
後面通通都帶零的話也算是合法輸入,
是想逼死誰~~~~~~~
(對啦我就是只會笨解法, 哭)

Compare Version Numbers
int compareVersion(char* version1, char* version2) {
    char *p1, *p2, *pp1, *pp2;
    char buf1[20],buf2[20];
    int v1,v2;
    bool e1=0,e2=0;
    pp1 = version1;
    pp2 = version2;
    while(e1!=1 || e2!=1)
    {
        if (e1)
        {
            v1 = 0;
        }
        else
        {
            memset(buf1,0,20);
            p1 = strstr(pp1,".");
            if (p1 != NULL)
            {
                strncpy(buf1, pp1, (p1-pp1));
                v1 = atoi(buf1);
            }
            else
            {
                e1 = 1;
                v1 = atoi(pp1);      
            }
        }
        if (e2)
        {
            v2 = 0;
        }
        else
        {        
            memset(buf2,0,20);
            p2 = strstr(pp2,".");
            if (p2 != NULL)
            {
                strncpy(buf2, pp2, (p2-pp2));
                v2 = atoi(buf2);
            }
            else
            {
                e2 = 1;
                v2 = atoi(pp2);      
            }
        }
        if (v1 > v2)
            return 1;
        else if (v1 < v2)
            return -1;

        if (!e1)
            pp1 = p1+1;
        if (!e2)
            pp2 = p2+1;
    }
    return 0;
   
}

沒有留言:

張貼留言