关闭

LeetCode---String to Integer (atoi)

标签: leetcodestring
131人阅读 评论(0) 收藏 举报
分类:

题目大意:给出一个数字表示的字符串将其转化为数字。要求算法能够忽略字符串开头的连续空格,当字符串出现其他字符时将字符串就此截断且返回结果,当数字和大于         MAX_INT时返回MAX_INT当数字和小于MIN_INT时返回MIN_INT。
算法思想:
开始时设置一个当前结果和变量,符号变量,和一个开始标记,然后遍历字符串,忽略开头的连续空格符,如果首次遇到'+','-'则标记符号变量且标记开始变量,如果遇到数字则将其加入结果和中且标记开始变量,其他情况则终止遍历,在字符串遍历的时候时刻判断结果和的上下边界。

代码如下:

class Solution {
public:
    int myAtoi(string str) {
        long long res=0;
        if(str.length()==0) return res;
        int sign=1;
        bool isStart=false;
        for(char c:str){
            if(c==' '&&!isStart){
                continue;
            }
            else if(isdigit(c)){
                res=res*10+c-'0';
                isStart=true;
            }
            else if(c=='+'&&!isStart)
            {
                isStart=true;
            }
            else if(c=='-'&&!isStart){
                isStart=true;
                sign=-1;
            }
            else{
                break;
            }
        if(res>2147483647&&sign==1) { res=2147483647; break;}
        if(res>2147483648&&sign==-1){ res=2147483648; break;}
        }
       
        return res*sign;
    }
};


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:41024次
    • 积分:2271
    • 等级:
    • 排名:第16542名
    • 原创:194篇
    • 转载:6篇
    • 译文:0篇
    • 评论:5条
    最新评论