[leetcode]8. String to Integer (atoi)(Java)
2017-07-06 10:05
465 查看
https://leetcode.com/problems/string-to-integer-atoi/#/description
Implement atoi to convert a string to an integer.
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.
Update (2015-02-10):
The signature of the
accepts a
reset your code definition.
spoilers alert... click to show requirements for atoi.
package go.jacob.day706;
public class Demo1 {
/*
* [leetcode]8. String to Integer (atoi)
* 该题需要考虑的几个关键点:1.正负号;2.中间存在字母(只取字母前的数字);3.溢出;4.前后空格
*
* Integer.Min_VALUE=-2147483648 . Integer.MAX_VALUE=2147483647
*/
public static int myAtoi(String str) {
if (str == null || str.trim().length() < 1)
return 0;
//处理掉前后空格
char[] arr = str.trim().toCharArray();
int sign = 1, index = 0;
//判断正负号
if (arr[0] == '+')
index++;
if (arr[0] == '-') {
sign = -1;
index++;
}
int num = 0;
for (int i = index; i < arr.length; i++) {
if (arr[i] - '0' >= 0 && arr[i] - '9' <= 0) {
//如果当前运算会越界的时候,直接输出结果
if (num > Integer.MAX_VALUE / 10 || num == Integer.MAX_VALUE / 10 && arr[i] - '7' > 0) {
if (sign > 0)
return Integer.MAX_VALUE;
else
return Integer.MIN_VALUE;
}
num = 10 * num + arr[i] - '0';
} else
//如果是字母,跳出循环
break;
}
return num * sign;
}
}
Implement atoi to convert a string to an integer.
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.
Update (2015-02-10):
The signature of the
C++function had been updated. If you still see your function signature
accepts a
const char *argument, please click the reload button to
reset your code definition.
spoilers alert... click to show requirements for atoi.
package go.jacob.day706;
public class Demo1 {
/*
* [leetcode]8. String to Integer (atoi)
* 该题需要考虑的几个关键点:1.正负号;2.中间存在字母(只取字母前的数字);3.溢出;4.前后空格
*
* Integer.Min_VALUE=-2147483648 . Integer.MAX_VALUE=2147483647
*/
public static int myAtoi(String str) {
if (str == null || str.trim().length() < 1)
return 0;
//处理掉前后空格
char[] arr = str.trim().toCharArray();
int sign = 1, index = 0;
//判断正负号
if (arr[0] == '+')
index++;
if (arr[0] == '-') {
sign = -1;
index++;
}
int num = 0;
for (int i = index; i < arr.length; i++) {
if (arr[i] - '0' >= 0 && arr[i] - '9' <= 0) {
//如果当前运算会越界的时候,直接输出结果
if (num > Integer.MAX_VALUE / 10 || num == Integer.MAX_VALUE / 10 && arr[i] - '7' > 0) {
if (sign > 0)
return Integer.MAX_VALUE;
else
return Integer.MIN_VALUE;
}
num = 10 * num + arr[i] - '0';
} else
//如果是字母,跳出循环
break;
}
return num * sign;
}
}
相关文章推荐
- 【JAVA、C++】 LeetCode 008 String to Integer (atoi)
- [LeetCode][Java] String to Integer (atoi)
- Leetcode: 8. String to Integer (atoi)(JAVA)
- LeetCode 8 String to Integer (atoi) (C,C++,Java,Python)
- LeetCode 8 — String to Integer (atoi)(C++ Java Python)
- [LeetCode-Java]8. String to Integer (atoi)
- String to Integer (atoi) leetcode java
- [LeetCode] 8. String to Integer (atoi) java
- 【LeetCode】String to Integer (atoi)(java)
- leetcode第八题 String to Integer (atoi) (java)
- LeetCode 8 String to Integer (atoi) (C,C++,Java,Python)
- (LeetCode) String to Integer (atoi) (Java)思路讲解及实现
- LEETCODE 8 String to Integer (atoi) (JAVA题解)
- LeetCode – String to Integer (atoi) (Java)
- [leetcode-8]String to Integer (atoi)(java)
- LeetCode【8】. String to Integer (atoi) --java实现
- Leetcode-8(Java) String to Integer (atoi)
- [Leetcode] String to Integer (atoi) (Java)
- 【LeetCode-面试算法经典-Java实现】【008-String to Integer (atoi) (字符串转成整数)】
- leetcode String to Integer (atoi)(Java)