【LeetCode从零单排】No.8 String to Integer (丧心病狂的一道题)
生活随笔
收集整理的這篇文章主要介紹了
【LeetCode从零单排】No.8 String to Integer (丧心病狂的一道题)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
題目
? ? ? ?題目很簡(jiǎn)單,就是寫一個(gè)函數(shù)把string轉(zhuǎn)換成int,但是通過(guò)率只有可憐的11%,難點(diǎn)是要考慮所有情況,特別是int溢出邊界,反正我是寫了2個(gè)小時(shí)還沒(méi)解決,先放到這,有空接著搞,現(xiàn)在應(yīng)該還有最后一個(gè)bug。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.
代碼
public class Solution {public int atoi(String str) {String num_str="";char[] str_char=str.toCharArray();char[] sympo="-+".toCharArray();boolean abs=true;for(int i=0;i<str.length();i++){if(str_char[i]==sympo[0] ||str_char[i]==sympo[1]){if(!Character.isDigit(str_char[i+1])){return 0;}if(str_char[i]==sympo[0]){abs=false;}}if(Character.isDigit(str_char[i])){ num_str+=String.valueOf(str_char[i]); }else{if(num_str.length()!=0){break;}} // if(Character.isDigit(str_char[i])){ // num_str+=String.valueOf(str_char[i]); // }if(num_str!=""){if(Math.abs(Integer.parseInt(num_str))>=Integer.MAX_VALUE / 10){return Integer.MAX_VALUE;}}}if(num_str!=""){if(abs){return Integer.parseInt(num_str);}else{return -Integer.parseInt(num_str);}}else{return 0;}}}代碼下載:https://github.com/jimenbian/GarvinLeetCode
/********************************
* 本文來(lái)自博客 ?“李博Garvin“
* 轉(zhuǎn)載請(qǐng)標(biāo)明出處:http://blog.csdn.net/buptgshengod
******************************************/
總結(jié)
以上是生活随笔為你收集整理的【LeetCode从零单排】No.8 String to Integer (丧心病狂的一道题)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【LeetCode从零单排】No.7 R
- 下一篇: 【LeetCode从零单排】No.9 P