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.
Here is an example of version numbers ordering:
0.1 < 1.1 < 1.2 < 13.37
这题还是蛮有意思的,就是版本号之间的比较,刚开始没考虑到例如1.6.5与1.6之间的比较,没有想到用递归的方法,解决起来就比较困难了。。
public class Solution { public int compareVersion(String version1, String version2) { if(version1.equals(version2)){ return 0; } int first1,first2; String second1,second2; if(version1.contains(".")){ String[] str=version1.split("\.",2); first1=Integer.parseInt(str[0]); second1=str[1]; } else{ first1=Integer.parseInt(version1); second1="0"; } if(version2.contains(".")){ String[] str=version2.split("\.",2); first2=Integer.parseInt(str[0]); second2=str[1]; } else{ first2=Integer.parseInt(version2); second2="0"; } if(first1>first2){ return 1; } else if(first1<first2){ return -1; } else return compareVersion(second1,second2); } }