165. Compare Version Numbers
Problem:
Compare two version numbers version1 and version2.
If
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
The
For instance,
.
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; } } |
评论
发表评论