力扣题解 8th 字符串转换整数 (atoi)

Posted fromneptune

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了力扣题解 8th 字符串转换整数 (atoi)相关的知识,希望对你有一定的参考价值。

8th 字符串转换整数 (atoi)

  • 字符串模式匹配

    这种题目极易写出臃肿的代码,我们需要明确具体的条件,并充分考虑细节。(否则会被样例虐爆)

    这里有一个常用的判断溢出条件的方法,在之前的题目中也有出现。

    • 对于正数:

      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有限状态机

以上是关于力扣题解 8th 字符串转换整数 (atoi)的主要内容,如果未能解决你的问题,请参考以下文章

8. 字符串转换整数 (atoi)(leetcode力扣算法 - java / rust)

8. 字符串转换整数 (atoi)(leetcode力扣算法 - java / rust)

《LeetCode之每日一题》:110.字符串转换整数 (atoi)

力扣_初级算法_字符串_5~8题

Leetcode题解....ing python

LeetCode 8. 字符串转换整数 (atoi)