牛客网 把字符串转换成整数

时间限制:1秒空间限制:32768K热度指数:5997

本题知识点:字符串

**算法知识视频讲解

题目描述

输入描述:
输入一个字符串,包括数字字母符号,可以为空
输出描述:
如果是合法的数值表达则返回该数字,否则返回0
输入例子:
+2147483647
    1a33
输出例子:
2147483647
    0

题解:先判断第一位,再遍历字符串,若不为数字,则break;

否则继续加

代码如下:

class Solution {
public:
    int StrToInt(string str) {
        if(str.size()==0)return 0;
        int flag=1;
        if(str[0]=='-'){
            flag=-1;
            str[0]='0';
        }else if(str[0]=='+'){
            flag=1; 
            str[0]='0';
        }
        long long sum=0;
        for(int i=0;i<str.size();++i){
            if(str[i]<'0'||str[i]>'9'){
                sum=0;
                break;
            }else{
                sum=sum*10+str[i]-'0';
            }
        }
        return flag*sum;
    }
};

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦