【菜鸟的leetcode之旅】String to integer atoi

来源:互联网 发布:linux中文语言包 编辑:程序博客网 时间:2024/06/05 14:25

【问题描述】将一个字符串转化成一个int型的值,注意在转化过程中要考虑到,为空,超过0x7fffffff或者小于0x80000000的情况,还要考虑到为负数的时候,还有注意在转化过程中,识别特殊符号。

 int atoi(const char *str) {     long long ans=0;     int st=0;     long long Max_num=0x7fffffff,Min_num=0x80000000;     bool flag=true;     while(st<str.length() && str[st]==' ')//判断是不是有空     {         st++;     }     if(st<str.length() && str[st]=='+')     {         st++;     }     else{        if(st<str.length && str[st]=='-')        {            flag=false;            st++;        }     }     for(int i=st;i<str.length();i++)     {         if(str[i]<'9' && str[i]>'0'){             ans=ans*10+str[i]-'0';              if(ans>Max_num ) ans=Max_num;         }        else        {             break;        }     }     if(flag==flase)     {         ans=-ans;     }     if(ans>Max_num )     {         ans=Max_num;     }     if(ans<Min_num)     {         ans=Min_num;     }        return ans;    };
【分享总结】这种atoi的题目是我们以后可能经常遇到的,遇到这种问题时,只需要我们充分考虑到所有的可能情况即可,可以在设计的时候把主要框架打出来,然后在逐一向上面添加功能。

自己在完成这个题目的时候用了很长的时间,而且思路不是很清晰,这个答案是参考别人代码的同时,自己完成的,感觉不是很好,可能自己好长时间没有coding了把 打字手感什么的也亟待提升,慢慢来把,坚持下去。

原创粉丝点击