zoukankan      html  css  js  c++  java
  • 剑指offer-把字符串转换成整数

    题目描述

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

     

    输入描述:

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

    输出描述:

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

    示例1

    输入

    +2147483647
        1a33

    输出

    2147483647
        0

    解题思路

    依次考虑以下情况:

    • 若字符串初始有‘+’、‘-’符号,设置一个bool型变量判断是否为‘-’,若为负数,则最后把结果取负
    • 接下来依次检查每个字符,若字符不在‘0’-‘9’之间,则直接把结果置0,中断循环
    • 若字符在‘0’-‘9’之间,则先把之前的结果乘10,再加上此字符转换成的数字,最终即可得到结果

    代码

     1 class Solution {
     2 public:
     3     int StrToInt(string str) {
     4         int res=0;
     5         int i=0;
     6         bool posi=true;
     7         if(str[i]=='+')
     8             i++;
     9         else if(str[i]=='-'){
    10             i++;
    11             posi=false;
    12         }
    13         while(i<str.size()){
    14             if(str[i]>='0'&&str[i]<='9'){
    15                 res*=10;
    16                 res+=(str[i]-'0');
    17                 i++;
    18             }
    19             else{
    20                 res=0;
    21                 break;
    22             }
    23         }
    24         if(!posi)
    25             res=0-res;
    26         return res;
    27     }
    28 };
  • 相关阅读:
    RabbitMQ
    Java 多线程
    Java 多线程
    Java 多线程
    Java 多线程
    Springboot
    SpringBoot
    SpringCloud Config
    Financial
    Hystrix
  • 原文地址:https://www.cnblogs.com/wmx24/p/8950074.html
Copyright © 2011-2022 走看看