题目:
Compare two version numbers vresion1 and version2
if version1>version2 return 1,if version1<version2 return -1,otherwise return 0.
思路:
① 1.0和1是一个版本,长度不一样,要检查一下“.”后面的是否是0;
②1.2小于1.12;
③通过字符串拆分成两段,判断前段是否相等,如果相等就判断小数点后面是否相等
代码:
1 public class CompareVersionNumbers {
2
3 public static int compareVersion(String version1, String version2) {
4 String[] s1 = version1.split("\\."); //通过\\将.进行转义
5 String[] s2 = version2.split("\\.");
6 int len1 = s1.length;
7 int len2 = s2.length;
8 int i, j;
9 for (i = 0, j = 0; i < len1 && j < len2; i++, j++) {
10 if (Integer.parseInt(s1[i]) > Integer.parseInt(s2[j])) {
11 return 1;
12 } else if (Integer.parseInt(s1[i]) < Integer.parseInt(s2[j])) {
13 return -1;
14 }
15 }
16 while (i < len1) {
17 if (Integer.parseInt(s1[i]) != 0) {
18 return 1;
19 }
20 i++;
21 }
22 while (j < len2) {
23 if (Integer.parseInt(s2[j]) != 0) {
24 return -1;
25 }
26 j++;
27 }
28 return 0;
29 }
30
31 public static void main(String[] args) {
32 int ret = compareVersion("1.0", "1");
33 System.out.println(ret);
34 }
35 }