zoukankan      html  css  js  c++  java
  • atoi将字符装换为数字

    伪代码思路:

    第一步:检测输入字符串是否为空字符串;

    if(str.empty()) return 0;

    第二步:

    检索有效输入:

    int i=0;

    while(str[i]==' '&&str[i]!='')

    i++;

    循环后i所在的位置即为有效字符所在的位置。

    if(str[i]=='')

    {return 0};

    第三步:检查数字符号:

    if(str[i]=='+')正i++

    if(str[i]=='-')  负i++

    //开始转换;

    int max=ox7fffffff //表示最大的int 32字节符号为为0,表示正数;

    int min=ox800000000;//表示下届 负数;

    long sum =0;

    while( str[i]!='')

    {

    if(str[i]>'0'&&str[i]<'9')

    {

    sum=sum*10+signal*(str[i]-'0');  //字符数字对应相减,其实对应的是它们的码值相减,差值为对应的数值之差;

    }

    esle

     return sum;

    //第五步:时刻检测数字是否溢出:

    if (sum > max || sum < min)   //溢出处理 
                    return sum > 0 ? max : min; 

    ++i;

    }

    return sum;

    class Solution {
    public:
        int myAtoi(string str) {
            if (str.empty())   //空字串 
               return 0; 
             
            //忽略前缀空格 
            int i = 0; 
            while (str[i] != '' && str[i] == ' ') 
              ++i; 
               
            if (str[i] == '') 
              return 0; 
             
            int max = 0x7fffffff; 
            int min = 0x80000000; 
            int signal = 1; 
              
            //处理+、-号 
            if (str[i] == '+') 
            { 
                signal = 1; 
                ++i; 
            } 
            else if (str[i] == '-') 
            { 
                signal = -1; 
                ++i; 
            } 
             
            //转换整数 
            long long sum = 0; 
            while (str[i] != '') 
            { 
                if (str[i] >= '0' && str[i] <= '9') 
                     sum = sum * 10 + signal * (str[i] - '0'); 
                else  
                    return sum; 
                if (sum > max || sum < min)   //溢出处理 
                    return sum > 0 ? max : min; 
                ++i; 
            } 
            return sum; 
        }
    };

  • 相关阅读:
    Python基础之基本数据类型
    Python基础之变量
    mysql数据库
    进程与线程
    并发编程
    网络编程
    内置函数(魔法方法)
    组合,封装,访问限制机制,property装饰器
    面向对象之继承
    Web开发中最致命的8个小错误
  • 原文地址:https://www.cnblogs.com/mmziscoming/p/5751869.html
Copyright © 2011-2022 走看看