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.Here is an example of version numbers ordering:
0.1 < 1.1 < 1.2 < 13.37
public class Solution { public int compareVersion(String version1, String version2) { // Note: Many special cases, e.g., "1" vs. "1.0.25" String[] v1 = version1.split("\\."); String[] v2 = version2.split("\\."); int n1 = v1.length; int n2 = v2.length; int ver1, ver2; for (int i = 0; i < Math.max(n1, n2); i++) { if (i < n1) ver1 = Integer.valueOf(v1[i]); else ver1 = 0; if (i < n2) ver2 = Integer.valueOf(v2[i]); else ver2 = 0; if (ver1 > ver2) return 1; else if (ver1 < ver2) return -1; } return 0; } }
No comments:
Post a Comment