其他分享
首页 > 其他分享> > 字符串转换整数--leetcode8

字符串转换整数--leetcode8

作者:互联网

3. 字符串转换整数

描述

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

注意:

本题中的空白字符只包括空格字符 ' ' 。
除前导空格或数字后的其余字符串外,请勿忽略 任何其他字符。

提示:

示例

输入:s = "42"
输出:42
输入:s = "-+12"
输出:12
输入:s = "+-12"
输出:0

题解

字符串模拟

class Solution {
        public int myAtoi(String s) {
            if (s == null || s.length() == 0) {
                return 0;
            }

            int l = s.length(), i = 0;
            while (i < l && s.charAt(i) == ' ') {
                i++;
            }
            boolean flag = false;
            if (i < l && s.charAt(i) == '-') {
                i++;
                flag = true;
            } else if (i < l && s.charAt(i) == '+') {
                i++;
            }

            long res = 0;
            for (; i < l; i++) {
                if (s.charAt(i) >= '0' && s.charAt(i) <= '9') {
                    res = res * 10 + (s.charAt(i) - '0');
                    if (res > 2147483648L) {
                        break;
                    }
                } else {
                    break;
                }
            }

            if (flag) {
                res = -res;
                if (res < Integer.MIN_VALUE) {
                    return Integer.MIN_VALUE;
                }
            } else if(res > Integer.MAX_VALUE){
                return Integer.MAX_VALUE;
            }

            return (int) res;
        }
    }

标签:字符,charAt,--,res,整数,leetcode8,字符串,231
来源: https://www.cnblogs.com/greengages/p/16490030.html