题意:把字符串转换成数字
思路:便利字符串,处理每一种可能出现的情况,空格,+,-,数字,其他字符
思想:字符串组合
复杂度:时间O(n),空间O(n)
class Solution {
public int myAtoi(String s) {
long res = 0;
// 记录数字是否已经开始统计
boolean isStart = false;
// 记录数字是正数还是负数
boolean isNegative = false;
for(char i: s.toCharArray()) {
if(i == ' ' && !isStart) {
continue;
} else if(i == '-') {
if(isStart)
break;
isStart = true;
isNegative = true;
} else if(i == '+') {
if(isStart)
break;
isStart = true;
} else if(i <= '9' && i >='0'){
res = res * 10 + (i - '0');
if(isNegative && (0-res) <= (long)Integer.MIN_VALUE)
return Integer.MIN_VALUE;
else if(res > (long)Integer.MAX_VALUE)
return Integer.MAX_VALUE;
isStart = true;
} else {
if(isStart)
break;
return 0;
}
}
if(isNegative)
res = res * (-1);
return (int)res;
}
}
网友评论