【Leetcode 8】字符串转换整数 (atoi)

题目描述

在这里插入图片描述

在这里插入图片描述在这里插入图片描述

方法一 : c++版本

函数说明,参数p字符串的第一个非空格字符存在,当这个非空字符是数字或者正负号,开始执行,
知道检测到字符为非数字字符,(其中包括'\0')时结束,返回一个int型整数,否则返回0
下面是函数实现:
int my_atoi(char *p){
    int number = 0;
    if(p == NULL)  {
        cout<<"字符串为空"<<endl;
        return 0;
    }
    else{
        //跳过前面的空格
        while(isspace(*p) != 0)
            p++;
        //首先判断正负号
        bool isNeg = false;
        if(*p == '-'){
            isNeg = true;
                p++;
        }
        if(*p == '+')
            p++;
        while(*p >= '0' && *p <= '9'){
            number = number * 10 +(*p - '0');
            p++;
        }
        return isNeg ? -number : number;
    }
}

int main()
{
   char p[] = "1223";
   int res = my_atoi(p);
   //printf("%p\n", &res);    //打印整型变量地址
   return printf("%d",res);
}

#解释单个字符与’0’相减
https://blog.csdn.net/yincheng_917/article/details/82021496

方法2 :python ,利用正则表达式

class Solution:
    def myAtoi(self, s: str) -> int:
        return max(min(int(*re.findall('^[\+\-]?\d+', s.lstrip())), 2**31 - 1), -2**31)

注意* 的用法,如 *[5] 就是解包,获得其中的5
参考链接
https://blog.csdn.net/kan2016/article/details/82116880

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bug 挖掘机

支持洋子

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值