剑指 Offer-JZ49-把字符串转换成整数

题目描述

将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0

解题思路

常规

代码实现

class Solution {
     
public:
    int StrToInt(string str) {
     
        if(str.empty())    return 0;
        int symbol = 1;
        if(str[0] == '-'){
     
            symbol = -1;
            str[0] = '0';
        }
        else{
     
            if(str[0] == '+'){
     
                symbol = 1;
                str[0] = '0';
            }
        }
        int 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 symbol * sum;
    }
};

运行结果

运行时间:3ms
占用内存:504k

你可能感兴趣的:(剑指offer,字符串,算法,c++)