【LeetCode從零單排】No.8 String to Integer (喪心病狂的一道題)
題目
題目很簡單,就是寫一個函式把string轉換成int,但是通過率只有可憐的11%,難點是要考慮所有情況,特別是int溢位邊界,反正我是寫了2個小時還沒解決,先放到這,有空接著搞,現在應該還有最後一個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;
}
}
}
/********************************
* 本文來自部落格 “李博Garvin“
* 轉載請標明出處:http://blog.csdn.net/buptgshengod
******************************************/
相關文章
- Leetcode 8 String to Integer (atoi)LeetCode
- 從一道面試題探究 Integer 的實現面試題
- LeetCode String to Integer (atoi)(008)解法總結LeetCode
- 喪心病狂的Android混淆檔案生成器Android
- Mysql從零單排-1MySql
- Leetcode 8. String to Integer (atoi) 字串轉整數 (atoi)LeetCode字串
- 從零單排學Redis【黃金】Redis
- 從零單排學Redis【白銀】Redis
- 「每日一道演算法題」Reverse Integer演算法
- 從零單排學Redis【鉑金一】Redis
- 從零單排學Redis【鉑金二】Redis
- 喪心病狂,竟有Thread.sleep(0)這種神仙寫法?thread
- LeetCode演算法簡單題--JavaScript(每天一道題)LeetCode演算法JavaScript
- 一道有趣的golang排錯題Golang
- LeetCode - 解題筆記 - 7 - Reverse IntegerLeetCode筆記
- LeetCode - 解題筆記 - 12 - Integer to RomanLeetCode筆記
- SpringBoot從零單排 ------初級入門篇Spring Boot
- 一行Python程式碼能實現什麼喪心病狂的功能?Python
- 分享一道有趣的 Leetcode 題目LeetCode
- Integer.valueof(String s)和Integer.parseInt(String s)的具體區別是什麼?
- 我在 GitHub 上看到了一個喪心病狂的開源專案!Github
- 【3y】從零單排學Redis【青銅】Redis
- Leetcode 12 Integer to RomanLeetCode
- Leetcode 13 Roman to IntegerLeetCode
- Leetcode 7 Reverse IntegerLeetCode
- 一道簡單的題
- 「從零單排canal 03」 canal原始碼分析大綱原始碼
- 「從零單排canal 05」 server模組原始碼解析Server原始碼
- 「從零單排canal 07」 parser模組原始碼解析原始碼
- 從零單排,使用 Netty 構建 IM 聊天室~Netty
- 「從零單排canal 06」 instance模組原始碼解析原始碼
- Laravel 從零單排系列教程 01 :Homestead 環境搭建Laravel
- Linux下使用Docker部署nacos-server:1.4.0(單機模式),喪心病狂的我在半夜給UCloud提交了一份工單LinuxDockerServer模式Cloud
- Sting 轉List<String>轉List<Integer>
- Leetcode 12. Integer to RomanLeetCode
- Leetcode 273 Integer to English WordsLeetCode
- 三分鐘從零單排js靜態檢查JS
- Spring AOP從零單排-織入時期原始碼分析Spring原始碼
- 「從零單排canal 04」 啟動模組deployer原始碼解析原始碼