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; 
        }
    };

  • 相关阅读:
    爬虫1:get请求的翻页及思考
    Selenium终极自动化测试环境搭建(一) Selenium+Eclipse+Junit+TestNG
    理解RESTful架构(转)
    vue-devtools(vue 2.0)手动安装与使用 ? 如何处理Vue.js is detected on this page ?
    小程序开放更多连接能力
    vscode 开发工具
    video 在微信中,安卓全屏和ios上如何内联播放?H5同层播放器相关接入规范
    微信小程序<web-view>嵌入网页后,小程序如何和网页交互传值?
    SpringCloud(三) 微服务架构-微服务稳定性
    SpringCloud(二) 微服务架构-服务注册与发现
  • 原文地址:https://www.cnblogs.com/mmziscoming/p/5751869.html
Copyright © 2011-2022 走看看