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

    题目描述

    将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0 
    输入描述:
    输入一个字符串,包括数字字母符号,可以为空


    输出描述:
    如果是合法的数值表达则返回该数字,否则返回0

    输入例子:
    +2147483647
        1a33

    输出例子:
    2147483647
        0
     1 class Solution {
     2 public:
     3     int StrToInt(string str) {
     4         int len = str.size();
     5         if (len == 0)
     6             return 0;
     7         for (int i = 1; i<len; ++i)
     8         {
     9             if (str[i] - '0' < 0|| str[i] - '0' > 9)
    10             {
    11                 return 0;
    12             }
    13         }
    14         vector<int> vet;
    15         
    16         if (str[0] == '-' || str[0] == '+' || (str[0] - '0' >= 0 && str[0] - '0' <= 9))
    17         {
    18             for (int i = 1; i<len; ++i)
    19             {
    20                 if (str[i] - '0' >= 0 && str[i] - '0' <= 9)
    21                 {
    22                     vet.push_back(str[i] - '0');
    23                 }
    24             }
    25         }
    26         else
    27         {
    28             return 0;
    29         }
    30         int sum = 0;
    31         if (str[0] == '-')
    32         {
    33             for (int i = 0; i<vet.size(); ++i)
    34             {
    35                 sum=sum * 10 + vet[i];
    36             }
    37             return -sum;
    38         }
    39         else
    40         {
    41             if (str[0] == '+')
    42             {
    43                 for (int i = 0; i<vet.size(); ++i)
    44                 {
    45                     sum = sum * 10 + vet[i];
    46                 }
    47                 return sum;
    48             }
    49             else
    50             {
    51                 sum = sum * 10 + (str[0] - '0');
    52                 for (int i = 0; i<vet.size(); ++i)
    53                 {
    54                     sum = sum * 10 + vet[i];
    55                 }
    56                 return sum;
    57             }
    58         }
    59     }
    60 };
  • 相关阅读:
    Lumen源码分析之 一步一步带你实现Lumen容器(一)
    php 注册器模式 工厂模式
    理解 PHP 依赖注入 和 控制反转
    composer使用git作为仓储
    monolog记录日志
    Jupyter Notebook快捷键
    图像灰度化
    一道算法题:拼数字
    [转]Vue生态系统中的库
    window.postMessage实现网页间通信
  • 原文地址:https://www.cnblogs.com/wujufengyun/p/7007254.html
Copyright © 2011-2022 走看看