• 【LeetCode】8. String to Integer (atoi)


    Implement atoi to convert a string to an integer.

    Hint: Carefully consider all possible input cases. If you want a challenge, please do not see below and ask yourself what are the possible input cases.

    Notes: It is intended for this problem to be specified vaguely (ie, no given input specs). You are responsible to gather all the input requirements up front.

    Update (2015-02-10):
    The signature of the C++ function had been updated. If you still see your function signature accepts a const char * argument, please click the reload button  to reset your code definition.

    题意:把符合条件的字符串变为数字

    难点:这个题不难,难在要考虑转换条件

      1.连续的数字字符

      2.连续的数字字符前面不能用‘+‘,’-’,之外的字符,而且加减号要和数字相接

      3.连续的数字字符后面可以有字幕(不知道为什么这个可以)

      4.考虑溢出

     1 int myAtoi(char* str) {
     2     int len,i;
     3     len=strlen(str);
     4     long tmp=0;
     5     int flag=0;
     6     for(i=0;i<len;i++)
     7     {
     8         while(str[i]==' ')
     9             i++;
    10             if(str[i]=='+')
    11                 {
    12                     flag=1;
    13                     i++;
    14                 }
    15                 else if(str[i]=='-')
    16                     {
    17                         flag=-1;
    18                         i++;
    19                     }
    20             if(flag&&!(str[i]<='9'&&str[i]>='0'))
    21                 return 0;
    22         while(i<len&&(str[i]<='9'&&str[i]>='0'))
    23             {
    24                 if(tmp<0)
    25                     tmp=tmp*10-(str[i]-'0');
    26                 else
    27                     tmp=tmp*10+(str[i]-'0');
    28                 if(-1==flag)
    29                     {
    30                         tmp*=-1;
    31                         if(tmp<0)
    32                              flag=1;
    33                     }
    34                 if(tmp>INT_MAX)
    35                         return 2147483647;
    36                     else if(tmp<INT_MIN)
    37                         return -2147483648;
    38                 i++;
    39             }
    40         while(i<len)
    41              i++;
    42     }
    43         return tmp;
    44 }
  • 相关阅读:
    DIV垂直居中
    表格细边框 并且CSS3加圆角
    CSS3自定义滚动条样式 -webkit-scrollbar
    select绑定json数组对象 asp.net
    正则表达式 匹配同一行 相同类型
    iis7.5 aspx,ashx的mime类型
    position:absolute,绝对定位和相对定位,JQ隐藏和显示
    IE专用CSS,最全的CSS hack方式一览
    AJAX安全-Session做Token
    HTTP Live Streaming直播(iOS直播)技术分析与实现
  • 原文地址:https://www.cnblogs.com/fcyworld/p/6197033.html
Copyright © 2020-2023  润新知