165. Compare Version Numbers
class Solution {
public int compareVersion(String version1, String version2) {
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;
}
}
8. String to Integer (atoi)
sign: 正负号
index: 当前索引。
class Solution {
public int myAtoi(String str) {
str = str.trim();
if(str == null || str.length() == 0) return 0;
int sign = 1;
int index = 0;
char c = str.charAt(0);
if(c == '+'){
sign = 1;
index++;
}else if(c == '-'){
sign = -1;
index++;
}
long sum = 0;
for(int i = index; i < str.length(); i++){
if(!Character.isDigit(str.charAt(i))){
return (int)sum * sign;
}
sum = sum * 10 + str.charAt(i) - '0';
if(sign == 1 && sum > Integer.MAX_VALUE){
return Integer.MAX_VALUE;
}
if(sign == -1 && (-1)*sum < Integer.MIN_VALUE){
return Integer.MIN_VALUE;
}
}
return (int)sum * sign;
}
}