Leetcode - String to Integer (atoi)
Question:
My code:
public class Solution {
public int myAtoi(String str) {
if (str == null || str.length() == 0)
return 0;
boolean isZero = true;
boolean isPositive = true;
for (int i = 0; i < str.length(); i++) {
if (str.charAt(i) != ' ') {
str = str.substring(i, str.length());
break;
}
}
if (str.charAt(0) == '-') {
isPositive = false;
str = str.substring(1, str.length());
}
else if (str.charAt(0) == '+')
str = str.substring(1, str.length());
String result = "";
for (int i = 0; i < str.length(); i++) {
if (str.charAt(i) >= '0' && str.charAt(i) <= '9') {
if (str.charAt(i) == '0' && isZero)
continue;
else {
isZero = false;
result += str.charAt(i);
}
}
else
break;;
}
if (result.length() == 0)
return 0;
if (result.length() > 10) {
if (isPositive)
return Integer.MAX_VALUE;
else
return Integer.MIN_VALUE;
}
long a = Long.parseLong(result);
if (!isPositive)
a = (-1) * a;
if (a < Integer.MIN_VALUE)
return Integer.MIN_VALUE;
else if (a > Integer.MAX_VALUE)
return Integer.MAX_VALUE;
else
return (int)a;
}
}
My test result:
這道題目沒有什麼意義,就是有一些極端情況,可能沒考慮到。測試的時候哪裡有錯,就把那些有錯的情況考慮到就好了。
**
總結:沒啥意義。
**
Anyway, Good luck, Richardo!
My code:
public class Solution {
public int myAtoi(String str) {
if (str == null || str.length() == 0) {
return 0;
}
int start = 0;
int base = 0;
int sign = 1;
int i = 0;
String s = str;
for (; i < str.length(); i++) {
if (s.charAt(i) != ' ') {
break;
}
}
if (s.charAt(i) == '+' || s.charAt(i) == '-') {
if (s.charAt(i) == '-') {
sign = -1;
}
i++;
}
while (i < s.length() && s.charAt(i) >= '0' && s.charAt(i) <= '9') {
char curr = s.charAt(i);
if (base > Integer.MAX_VALUE / 10 || (base == Integer.MAX_VALUE / 10 && curr - '0' > 7)) {
if (sign == 1) {
return Integer.MAX_VALUE;
}
else {
return Integer.MIN_VALUE;
}
}
base = 10 * base + (curr - '0');
i++;
}
return sign * base;
}
public static void main(String[] args) {
Solution test = new Solution();
int ret = test.myAtoi("1");
System.out.println(ret);
}
}
reference:
https://discuss.leetcode.com/topic/2666/my-simple-solution
這種題目沒有意思,看下答案就行了。然後記住它。
Anyway, Good luck, Richardo! -- 09/20/2016
相關文章
- leetcode String to Integer (atoi)LeetCode
- Leetcode 8 String to Integer (atoi)LeetCode
- String to Integer (atoi) leetcode javaLeetCodeJava
- Leetcode 8. String to Integer (atoi) 字串轉整數 (atoi)LeetCode字串
- LeetCode String to Integer (atoi)(008)解法總結LeetCode
- [LeetCode] String to Integer (atoi) 字串轉為整數LeetCode字串
- 【LeetCode 8_字串_實現】String to Integer (atoi)LeetCode字串
- String to Integer (atoi) 字串轉換整數 (atoi)字串
- Leetcode Integer to RomanLeetCode
- leetcode Reverse IntegerLeetCode
- leetcode Roman to IntegerLeetCode
- [LeetCode] Roman to IntegerLeetCode
- Leetcode 12 Integer to RomanLeetCode
- Leetcode 13 Roman to IntegerLeetCode
- Leetcode 7 Reverse IntegerLeetCode
- LeetCode-Integer ReplacementLeetCode
- LeetCode-Integer BreaksLeetCode
- Leetcode-Roman to IntegerLeetCode
- Leetcode-Integer to RomanLeetCode
- Reverse Integer leetcode javaLeetCodeJava
- Integer to Roman leetcode javaLeetCodeJava
- Roman to Integer leetcode javaLeetCodeJava
- Integer.valueof(String s)和Integer.parseInt(String s)的具體區別是什麼?
- LeetCode-8. 字串轉整數 (atoi)LeetCode字串
- Leetcode 273 Integer to English WordsLeetCode
- Leetcode 12. Integer to RomanLeetCode
- Leetcode-Problem:Reverse IntegerLeetCode
- LeetCode-Integer to English WordsLeetCode
- 【LeetCode從零單排】No.8 String to Integer (喪心病狂的一道題)LeetCode
- LeetCode 第 7 題(Reverse Integer)LeetCode
- LeetCode 第 343 題 (Integer Break)LeetCode
- [Swift LeetCode]13. Roman to IntegerSwiftLeetCode
- [leetcode] 1394. Find Lucky Integer in an ArrayLeetCode
- 13. Roman to Integer--LeetCode RecordLeetCode
- [LeetCode] Reverse Integer 翻轉整數LeetCode
- List<Integer>裡有可能存String型別元素嗎?型別
- java-string轉換成integer的方式及原理Java
- [LeetCode] Rotate StringLeetCode