165. Compare Version Numbers

Compare two version numbersversion1andversion2.
Ifversion1>version2return 1, ifversion1<version2return -1, otherwise return 0.

You may assume that the version strings are non-empty and contain only digits and the.character.
The.character does not represent a decimal point and is used to separate number sequences.
For instance,2.5is not "two and a half" or "half way to version three", it is the fifth second-level revision of the second first-level revision.

Here is an example of version numbers ordering:

0.1 
<
 1.1 
<
 1.2 
<
 13.37

Credits:
Special thanks to@tsfor adding this problem and creating all test cases.

class Solution {
    public int compareVersion(String version1, String version2) {
        String[] str1 = version1.split("\\.");
        String[] str2 = version2.split("\\.");

        //System.out.println("str1: " + String.valueOf(Arrays.asList(str1)) + " str2: " + String.valueOf(Arrays.asList(str2)));

        for (int i = 0; i < Math.max(str1.length, str2.length); i++){
            Integer val1 = i < str1.length ? Integer.parseInt(str1[i]) : 0;
            Integer val2 = i < str2.length ? Integer.parseInt(str2[i]) : 0;

            int res = val1.compareTo(val2);

            if (res != 0){
                return res;
            }
        }

        return 0;
    }
}

results for ""

    No results matching ""