zoukankan      html  css  js  c++  java
  • leetcode 字符串转换整数 (模拟)

    在这里插入图片描述

    思路分析

    1.跟着题意模拟,分成几种情况来看待
    2.一种全是空格
    3.有可能有空格,然后有符号的
    4.有可能有空格,无符号数字
    5.有可能有空格,非数字开头
    6.最后还需要考虑一个越界的问题,所以要除以10来判断
    

    代码:

    class Solution {
    public:
        int myAtoi(string str) {
            int i=0,sum=0;
            int flag=1;
            while(str[i]==' '&&str[i]!='')
            {
                i++;
            }
            if((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z')||str[i]=='')
            return 0;
            if(str[i]=='-')
            {
                 flag=-1;
                 i++;
            }else if(str[i]=='+')
            {
                i++;
            }
            while(str[i]>='0'&&str[i]<='9'&&str[i]!='')
            {
                 if (sum > INT_MAX / 10 || (sum == INT_MAX / 10 && (str[i] - '0') > INT_MAX % 10)) {
                    return INT_MAX;
                }
                if (sum < INT_MIN / 10 || (sum == INT_MIN / 10 && (str[i] - '0') > -(INT_MIN % 10))){
                    return INT_MIN;
                }
    
                sum=sum*10+flag*(str[i]-'0');
                i++;
            }
            return sum;
            
        }
    };
    
  • 相关阅读:
    11 MySQL视图
    10 MySQL索引选择与使用
    08 MySQL存储引擎
    09 MySQL字符集
    06 MySQL运算符
    07 MySQL常用内置函数
    05 MySQL数据类型的选择与使用
    04 MySQL数据类型
    js 当前日期后7天
    md5加密
  • 原文地址:https://www.cnblogs.com/YenKoc/p/12779901.html
Copyright © 2011-2022 走看看