美文网首页
剑指Offer-把字符串转换成整数

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

作者: 一只可爱的柠檬树 | 来源:发表于2019-05-13 20:36 被阅读0次

题目描述 [把字符串转换成整数]

将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。

输入描述

输入一个字符串,包括数字字母符号,可以为空

输出描述

如果是合法的数值表达则返回该数字,否则返回0

解题思路

真的简单的不能再简单了

  • 从头开始遍历字符串,首先判断是不是空,如果是空什么也不做
  • 然后判断是否是正负号,如果是则设置相应的符号
  • 然后判断是否是数字,不是则返回0,如果是则加上
    注意:要判断是否溢出

代码

class Solution {
public:
    int StrToInt(string str) {
        int flag=1;
        int num=0;
        int i=0;
        while(i<str.size()){
            if(str[i]=='+'||str[i]==' ') ;
            else if(str[i]=='-') flag=-1;
            else if(isdigit(str[i])){
                num = num*10 + str[i]-'0';
                if((flag>0&&num>INT_MAX)||(flag<0&&num<INT_MIN)) return 0;

            }else return 0;
            i++;
        }
        return num*flag;
    }
};

相关文章

网友评论

      本文标题:剑指Offer-把字符串转换成整数

      本文链接:https://www.haomeiwen.com/subject/abaeaqtx.html