苹果面试题: 比较版本号
描述
比较两个版本号version1和version2。
如果version1 > version2返回1,如果version1 < version2返回-1,否则返回0。
您可以认为版本字符串是非空的并且只包含数字和 . 字符。
这个 ‘.’ 字符不表示小数点,用于分隔数字序列。
例如,2.5不是“两个半”或“版本三的一半”,它是第二个第一级修订的第五个二级修订。
在线评测地址
样例1
输入: version1 = "1",version2 = "01"
输出: 0
样例2
输入: version1 = "4.9",version2 = "4.5"
输出: 1
解题思路
将字符串转化成整数,再比较大小
源代码
public class Solution {
/**
* @param version1: the first given number
* @param version2: the second given number
* @return: the result of comparing
*/
public int compareVersion(String version1, String version2) {
// Write your code here
String[] levels1 = version1.split("\\.");
String[] levels2 = version2.split("\\.");
int length = Math.max(levels1.length, levels2.length);
for (int i = 0; i < length; i ++) {
Integer v1 = i < levels1.length ? Integer.parseInt(levels1[i]) : 0;
Integer v2 = i < levels2.length ? Integer.parseInt(levels2[i]) : 0;
int compare = v1.compareTo(v2);
if (compare != 0) {
return compare;
}
}
return 0;
}
}
该博客介绍了一道苹果公司的面试题,即如何比较两个版本号。提供的解题思路是将版本号字符串按点分隔,然后逐段转换为整数进行比较。给出的源代码实现了这一方法,通过遍历每个版本号段并比较大小来得出结果。在给定的样例中,版本号比较正确返回了预期的输出值。

被折叠的 条评论
为什么被折叠?



