zoukankan      html  css  js  c++  java
  • [剑指Offer] 49.把字符串转换成整数

    题目描述

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

    【思路】考虑所有特殊情况

    1.数字前面有空格,如s="    123456",空格需舍弃。
    2.数字前出现了不必要或多于的字符导致数字认证错误,输出0。如s="   b1234",s="  ++1233", s=" +-1121"。
    3.数字中出现了不必要的字符,返回字符前的数字。如s="   12a1", s=" 123  123"。
    4.数字越界,超过了范围(-2147483648--2147483647),分别返回-2147483648和2147483647。

     1 class Solution
     2 {
     3 public:
     4     int StrToInt(string str)
     5     {
     6         if(str == "")    return 0;
     7         int i = 0,flag = 1;
     8         long long num = 0;
     9         while(str[i] != '' && str[i] == ' ') i ++;//去掉开头空格
    10         if(str[i] == '+') i ++;   //处理开头正负号
    11         else if(str[i] == '-')
    12         {
    13             flag = -1;
    14             i ++;
    15         }
    16         while(str[i] != '')
    17         {
    18             if(str[i] >= '0' && str[i] <= '9')
    19             {
    20                 num = num * 10 + str[i] - '0';
    21                 i ++;
    22                 if(num > INT_MAX){
    23                     return (flag == 1)?INT_MAX:INT_MIN;
    24                 }
    25             }
    26             else return 0;
    27         }
    28         num *= flag;
    29         return num;
    30     }
    31 };
  • 相关阅读:
    02-35 scikit-learn库之支持向量机
    C#当中的out关键字(借鉴于CSDN)
    Uploadify上传大文件
    EF-基础用法
    第一节:EasyUI样式,行内编辑,基础知识
    Compute和Linq的Field使用
    leetcode-15. 三数之和-OK
    C#启动时全屏显示窗体...
    C#启动时全屏显示窗体...
    leetcode-1117. H2O 生成
  • 原文地址:https://www.cnblogs.com/lca1826/p/6538817.html
Copyright © 2011-2022 走看看