165. Compare Version Numbers

Problem:
Compare two version numbers version1 and version2.
If version1 > version2 return 1; if version1 < version2 return -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.5 is not "two and a half" or "half way to version three", it is the fifth second-level revision of the second first-level revision.
Example 1:
Input: version1 = "0.1", version2 = "1.1"
Output: -1
Example 2:
Input: version1 = "1.0.1", version2 = "1"
Output: 1
Example 3:
Input: version1 = "7.5.2.4", version2 = "7.5.3"
Output: -1

Analysis:
这道题实现的时候要注意在数组越界的时候把值赋为零。

Solution:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
class Solution {
    public int compareVersion(String version1, String version2) {
  String[] v1 = version1.split("\\.");
  String[] v2 = version2.split("\\.");
  int len1 = v1.length, len2 = v2.length;
  for (int i = 0; i < Math.max(len1, len2); i++) {
   int value1 = (i < len1) ? Integer.valueOf(v1[i]) : 0;
   int value2 = (i < len2) ? Integer.valueOf(v2[i]) : 0;
   if (value1 > value2)
    return 1;
   else if (value1 < value2) 
    return -1;
  }   
  return 0;
    }
}

评论

此博客中的热门博文

776. Split BST

663. Equal Tree Partition