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

    题目:

      把字符串转换成整数

    链接:

      https://www.nowcoder.com/practice/1277c681251b4372bdef344468e4f26e?tpId=13&tqId=11202&rp=3&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

    题目描述:

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

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

      输入例子:+2147483647 ,1a33

      输出例子:21474838647 ,0

    思路:

      这个题目较简单,没有涉及科学计数

      非数字的情况如+,-只能出现在第一位,所以对第一位数字进行判断,后续位置只能是数字,

    代码:

      

     1 class Solution{
     2 public:
     3     int StrToInt(string str){
     4         int len = str.length();
     5         if(len <= 0){
     6             return 0;
     7         }
     8         int flag =1;
     9         int sum = 0;
    10         for(int i = 0;i<len;++i){
    11             if(i == 0){
    12                 if(str[i] == '-'){
    13                     flag = -1;
    14                 }
    15                 else if(str[i]>='0' && str[i] <= '9'){
    16                     sum += (str[i] - '0');
    17                 }
    18                 else if(str[i] == '+'){
    19                     flag == 1;
    20                 }
    21                 else{
    22                     return sum;
    23                 }
    24             }
    25             else if( str[i] < '0' || str[i] > '9'){
    26                 return 0;
    27             }
    28             else{
    29                 sum = sum*10 +  str[i]- '0';
    30             }
    31         }
    32         return sum*flag;
    33     }
    34 };
  • 相关阅读:
    springboot自动装配原理
    @Inherited 注解的作用
    基础知识点:链表反转
    基础知识点:二叉树的层次遍历
    算法题:8、二进制中1的个数
    微服务_GPRC
    扎实基础_数据结构
    .net core3.0程序发布到linux+docker
    c#_安全漏洞总结
    IIS Express(电脑无管理员权限如何启用VS调试)
  • 原文地址:https://www.cnblogs.com/wangshujing/p/6959247.html
Copyright © 2011-2022 走看看