比較兩個版本號 version1 和 version2。版本號由數字和點組成,如 "1.2.3"。比較規則:從左到右逐段比較數字大小,缺失段視為 0。返回 1(version1 大)、-1(version2 大)或 0(相等)。
split("\\.") 將版本號分割為字符串數組。public class Solution {
public int compareVersion(String version1, String version2) {
String[] v1 = version1.split("\\.");
String[] v2 = version2.split("\\.");
int i = 0;
while (i < v1.length || i < v2.length) {
int n1 = i < v1.length ? Integer.parseInt(v1[i]) : 0;
int n2 = i < v2.length ? Integer.parseInt(v2[i]) : 0;
if (n1 > n2) return 1;
if (n1 < n2) return -1;
i++;
}
return 0;
}
}
Integer.parseInt 自動處理。時間 O(max(m,n)),空間 O(m+n) 存儲分割數組。可優化為雙指針原地解析,空間 O(1)。