Compare Version Numbers: 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
题意:按照题目给定的比较方式,比较给定的两个字符串所表示的版本号。
思路:以 . 为界先比较 . 前的数的大小,分出大小就输出,出现相等的情况要比较 . 后的数。分别将前后的字符串转换成整数进行比较。
代码:
public int compareVersion(String version1, String version2) { long a = 0,b=0; int len1 = version1.length(),len2 = version2.length(); int i=0,j=0; while(i<len1 || j< len2){ a=0;b=0; while(i<len1&&version1.charAt(i)!='.'){ a = a*10+version1.charAt(i) - '0'; ++i; } ++i; while(j<len2 && version2.charAt(j)!='.'){ b = b*10 + version2.charAt(j)-'0'; ++j; } ++j; if(a>b) return 1; if(a<b) return -1; } return 0; }