首页 > 代码库 > LeetCode String to Integer (atoi) 解题报告
LeetCode String to Integer (atoi) 解题报告
任务是判断可能出现的情况:
1.空格
2.空指针
3.首字符是0
4.首字符是“+”或“-”
5.判断边界条件,上界INT_MAX=2147483647,下届INT_MIN=-2147483648,小心判断
1 // 2 // main.cpp 3 // Longest Substring 4 // 5 // Created by Bowie Hsu on 29/11/21. 6 // Copyright (c) 2014年 Bowie Hsu . All rights reserved. 7 // 8 9 #include <iostream>10 #include <string>11 #include <sstream>12 #include <vector>13 #include "stdio.h"14 #include "ctype.h"15 using namespace std;16 17 class Solution {18 public:19 int atoi(const char *str)20 {21 int ibgn=1;22 //判断字符串的情况,空格,空指针23 while(*str==‘ ‘)24 str++;25 if(*str==0)26 str++;27 //str含有负号,输出的int为负28 if(*str==‘-‘)29 {30 ibgn=-1;31 str++;32 }33 else if (*str==‘+‘)34 {35 //ibgn=1;36 str++;37 }38 int output=0;39 while (isdigit(*str))40 {41 int i=*str-‘0‘;42 output=output*10+i;43 ++str;44 45 if (ibgn==1 && output>INT_MAX)46 {47 output=2147483647;48 }49 else if(ibgn==-1 && output*ibgn<INT_MIN)50 {51 output=2147483648;52 }53 }54 return output*ibgn;55 }56 };57 int main()58 {59 const char abb=‘3‘;60 const char *input=&abb;61 int ans;62 Solution x;63 ans=x.atoi(input);64 cout<<ans<<endl;65 //cout<<"what?"<<endl;66 67 }
LeetCode String to Integer (atoi) 解题报告
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。