java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > java题解字符串转换整数

java题解Leetcode 8字符串转换整数

作者:尹学姐

这篇文章主要为大家介绍了java题解Leetcode 8字符串转换整数实现,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

题目要求

请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。

函数 myAtoi(string s) 的算法如下:

注意:

示例 1:

输入:s = "42"
输出:42

示例 2:

输入:s = " -42"
输出:-42

示例 3:

输入:s = "4193 with words"
输出:4193

提示:

解题思路

这道题用简单的模拟法来解。

主要步骤如下:

Java代码

class Solution {
    public int myAtoi(String s) {
        s = s.trim();
        int index = 0, flag = 1, res = 0;
        if (index < s.length() && (s.charAt(index) == '+' || s.charAt(index) == '-')) {
            flag = s.charAt(index++) == '+' ? 1 : -1;
        }
        while(index < s.length() && Character.isDigit(s.charAt(index))){
            int digit = s.charAt(index) - '0';
            if(res > (Integer.MAX_VALUE - digit) / 10){
                return flag == 1 ? Integer.MAX_VALUE : Integer.MIN_VALUE;
            }
            res = res * 10 + digit;
            ++index;
        }
        return flag * res;
    }
}

总结

这道题就用模拟法的方式来解,就好了,核心是如何判断越界。不能在计算完res值之后再判断越界,要在计算res值之前判断是否越界。

以上就是java题解Leetcode 8字符串转换整数的详细内容,更多关于java题解字符串转换整数的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文