题目描述:
示例 1:
示例 2:
示例 3:
示例 4:
题目分析:
- 比较字符串version1,version2中每个"."分割段“数字”的大小,如果version1 > version2则返回1,version1 < version2则返回-1.相等则返回0.
思路:
代码实现:
class Solution {
public int result = 0;
public int compareVersion(String version1, String version2) {
String[] char_l = version1.split("\\.");
String[] char_r = version2.split("\\.");
int l = char_l.length;
int r = char_r.length;
int idx = Math.min(l, r);
int i = 0;
for (; i < idx; i++) {
if (Integer.valueOf(char_l[i]) > Integer.valueOf(char_r[i])) {
result = 1;
break;
} else if (Integer.valueOf(char_l[i]) < Integer.valueOf(char_r[i])) {
result = -1;
break;
}
}
// 相同长度内的所有元素都相同
if (i == idx) {
// 判断多出来的元素是否大于0
if (l > r) {
while (i < l) {
if (Integer.valueOf(char_l[i++]) > 0) {
return 1;
}
}
} else if (l < r) {
while (i < r) {
if (Integer.valueOf(char_r[i++]) > 0) {
return -1;
}
}
}
}
return result;
}
}