LeetCode---String to Integer (atoi)

来源:互联网 发布:算法时代 下载 编辑:程序博客网 时间:2024/05/22 08:20

题目大意:给出一个数字表示的字符串将其转化为数字。要求算法能够忽略字符串开头的连续空格,当字符串出现其他字符时将字符串就此截断且返回结果,当数字和大于         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
原创粉丝点击