⭐Compare Version Numbers

Using int for in-range numbers

int getRevision(const string &A, int &i) {
    if(i >= A.size())
        return 0;
        
    int rev = 0;
    while(i < A.size() && A[i] != '.') {
        rev = rev * 10 + A[i] - '0';
        i++;
    }        
    return rev;
}

int Solution::compareVersion(string A, string B) {
    int i = 0, j = 0;
    
    // until both A and B are exhausted
    while(i < A.size() || j < B.size()) {
        int v1 = getRevision(A, i);
        int v2 = getRevision(B, j);
        
        if(v1 < v2) 
            return -1;
        if(v1 > v2)
            return 1;
            
        i++, j++;            
    }
    
    return 0;
}

Using Strings for large numbers

Last updated