Share a recursion solution takes 4ms, C++


  • 1
    F
    class Solution {
    public:
        int compareVersion(string &v1, string &v2, int i1, int i2){
            int n1=0, n2=0;
            if(i1 >= v1.size() && i2 >= v2.size()) return 0;
            int j1 = i1, j2 = i2; 
            while(j1<v1.size() && v1[j1] != '.') n1=10*n1+v1[j1++]-'0';
            while(j2<v2.size() && v2[j2] != '.') n2=10*n2+v2[j2++]-'0';
            if(n1 > n2) return 1;
            else if(n1 < n2) return -1;
            else return compareVersion(v1, v2, ++j1, ++j2);
        }
        int compareVersion(string version1, string version2) {
            return compareVersion(version1, version2, 0, 0);
        }
    };

Log in to reply
 

Looks like your connection to LeetCode Discuss was lost, please wait while we try to reconnect.