题目
165-比较版本号
代码
可以先将两个版本号用 “.” 分割,然后将得到的字符串转化为整数再逐个比较即可。
可通过 Integer.parseInt() 方法将字符串快速转化为整数,例如 “001”可通过该方法变成整数1,具体代码如下。
public int compareVersion(String version1, String version2){String[] ver1 = version1.split("\\.");String[] ver2 = version2.split("\\.");for (int i = 0; i < ver1.length || i < ver2.length; i++) {int x = 0, y = 0;if (i < ver1.length) {x = Integer.parseInt(ver1[i]);}if (i < ver2.length) {y = Integer.parseInt(ver2[i]);}if (x > y){return 1;}else if (x < y){return -1;}}return 0;
}
例如当版本号分别为 “1.001” 和 “1.01.1” 时,每次循环比较的结果为
i = 0:
x=1 = y=1
i = 1:
x=1 = y=1
i = 2:
x=0 < y=1
最终返回-1。
时空复杂度
时间复杂度:O(max(n,m))
空间复杂度:O(n+m)O。