标签:cte block ext null dig dfa positive 出现 ber
字符串模式匹配
这种题目极易写出臃肿的代码,我们需要明确具体的条件,并充分考虑细节。(否则会被样例虐爆)
这里有一个常用的判断溢出条件的方法,在之前的题目中也有出现。
对于正数:
if(number > Integer.MAX_VALUE / 10 || (number == Integer.MAX_VALUE / 10 && next_index > 7)) return "溢出";
对于负数:
if(number < Integer.MIN_VALUE / 10 || (number == Integer.MIN_VALUE / 10 && next_index < -8)) return "溢出";
class Solution {
public int myAtoi(String str) {
if(str == null || str.length() == 0) return 0;
int point = 0;
boolean isPositive = true;
int ans = 0;
while (point < str.length() && str.charAt(point) == ‘ ‘) {
point++;
}
if (point < str.length() && str.charAt(point) == ‘+‘) {
point++;
} else if (point < str.length() && str.charAt(point) == ‘-‘) {
isPositive = false;
point++;
}
while (point < str.length() && Character.isDigit(str.charAt(point))) {
if (ans > Integer.MAX_VALUE / 10 ||
(ans == Integer.MAX_VALUE / 10 && str.charAt(point) - ‘0‘ > 7)) {
return isPositive ? Integer.MAX_VALUE : Integer.MIN_VALUE;
}
ans = ans * 10 + str.charAt(point++) - ‘0‘;
}
return isPositive ? ans : -ans;
}
}
DFA有限状态机
标签:cte block ext null dig dfa positive 出现 ber
原文地址:https://www.cnblogs.com/fromneptune/p/13266743.html