String to Integer (atoi)
来源:互联网 发布:天时网络电玩城 编辑:程序博客网 时间:2024/05/17 15:20
Hint: Carefully consider all possible input cases. If you want a challenge, please do not see below and ask yourself what are the possible input cases.
Notes: It is intended for this problem to be specified vaguely (ie, no given input specs). You are responsible to gather all the input requirements up front.
Requirements for atoi:
The function first discards as many whitespace characters as necessary until the first non-whitespace character is found. Then, starting from this character, takes an optional initial plus or minus sign followed by as many numerical digits as possible, and interprets them as a numerical value.
The string can contain additional characters after those that form the integral number, which are ignored and have no effect on the behavior of this function.
If the first sequence of non-whitespace characters in str is not a valid integral number, or if no such sequence exists because either str is empty or it contains only whitespace characters, no conversion is performed.
If no valid conversion could be performed, a zero value is returned. If the correct value is out of the range of representable values, INT_MAX (2147483647) or INT_MIN (-2147483648) is returned.
Analysis
1. null or empty string 空串2. white spaces 空格3. +/- sign 正负号4. calculate real value5. handle min & max 溢出
public class Solution { public int myAtoi(String str) { if (str == null || str.length() < 1) return 0; // trim white spaces str = str.trim(); char flag = '+'; // check negative or positive int i = 0; if (str.charAt(0) == '-') { flag = '-'; i++; } else if (str.charAt(0) == '+') { i++; } // use double to store result double result = 0; // calculate value while (str.length() > i && str.charAt(i) >= '0' && str.charAt(i) <= '9') { result = result * 10 + (str.charAt(i) - '0'); i++; } if (flag == '-') result = -result; // handle max and min if (result > Integer.MAX_VALUE) return Integer.MAX_VALUE; if (result < Integer.MIN_VALUE) return Integer.MIN_VALUE; return (int) result; }}
- String to Integer (atoi)
- String to Integer (atoi)
- String to Integer (atoi)
- String to Integer (atoi)
- String to Integer (atoi)
- String to Integer (atoi)
- String to Integer (atoi)
- String to Integer (atoi)
- string to integer (atoi)
- String to Integer (atoi)
- String to Integer (atoi)
- String to Integer (atoi)
- String to Integer (atoi)
- String to Integer(atoi)
- String to Integer (atoi)
- String to Integer (atoi)
- String to Integer (atoi)
- String to Integer (atoi)
- 获取Android Activity两种方法
- 尼姆游戏(吃花生米问题)
- Laravel 5 Form 和 HTML 的使用
- LoadBitmap(IDB_BITMAP1) -- 未定义标识符 IDB_BITMAP1
- Reverse Integer
- String to Integer (atoi)
- SQL 左外连接,右外连接,全连接,内连接
- 九宫格填法规律--奇数
- 约瑟夫游戏
- 如何解决fpga high fanout问题
- PHP实现当前文件夹下所有文件和文件夹的遍历
- Fmod studio 手机上延迟的一些处理方案
- MySQL 显示表字段及注释等信息
- Python 练习册之二