LeetCode:8. 字符串转换整数(python3)

Posted 南岸青栀*

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode:8. 字符串转换整数(python3)相关的知识,希望对你有一定的参考价值。

8. 字符串转换整数 (atoi)

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

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

法1:正则表达式

正好回顾一下正则表达式

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

简单回顾一下正则表达式

findall函数

在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,
则返回空列表。语法格式如下:

findal[(pattern, string, flags=0)

参数说明

参数描述
pattern匹配的正则表达式
string要匹配的字符串
flags可选,表示匹配模式,例如:忽略大小写,多行模式等

边界字符

字符功能
^匹配字符串开头
$匹配字符串结尾
\\b匹配一个单词的边界
\\B匹配非单词的边界

原生字符串

正则表达式里使用“\\”作为转移字符。

Python中字符串前面加上 r 表示原生字符串

例:在输出路径的时候要使用两次反斜杠

重复数量限定符

提供了对表达式的一部分进行重复处理的功能。

正则表达式中常用的限定符

符号描述
*匹配零次或多次
+匹配一次或多次
匹配一次或零次
{m}重复m次
{m,n}重复m到n次
{m,}至少m次

常用匹配符

符号描述
.匹配任意一个字符(除了\\n)
[]匹配列表中的字符串
\\w匹配字母、数字、下划线(a-z,A-Z,0-9,_)
\\W匹配不是字母,数字,下划线
\\s匹配空白字符,(空格\\n\\t)
\\S匹配不是空白的字符
\\d匹配数字(0-9)
\\D匹配非数字的字符

Python *的意义

在元组,字典,列表中使用*

lst = [1,2,3,4]
tuple1 = (1,2,3,4)
dic = {"1":"a","2":"b","3":"c"}
print(lst,"===>",*lst)
print(tuple1,"===>",*tuple1)
print(dic,"===>",*dic)

在这里插入图片描述
在列表前加*号,会将列表拆分成一个一个的独立元素,不光是列表、元组、字典,由numpy生成的向量也可以拆分;

*args和**kwargs

  • *args:接收若干个位置参数,转换成元组tuple形式
  • **kwargs:接收若干个关键字参数,转换成字典dict形式
def test(*args):
    print(type(args))
    for i in args:
        print(i)
lst = [1,2,3,4]
test(lst)
test(*lst)

在这里插入图片描述

如果不加*,add函数将整个列表当做一个元素使用,也就是add(([1,2,4,5],))。

而带有*号的参数,此时相当于add((1, 2, 4, 5));

*号也可以作用于二维的列表;

可迭代对象才可以使用*号拆分; 带*号变量严格来说并不是一个变量,而更应该称为参数,它是不能赋值给其他变量的,但可以作为参数传递;

以上是关于LeetCode:8. 字符串转换整数(python3)的主要内容,如果未能解决你的问题,请参考以下文章

前端与算法 leetcode 8. 字符串转换整数 (atoi)

5-103-(LeetCode-8) 字符串转换整数 (atoi)

LeetCode:8. 字符串转换整数(python3)

LeetCode 8 字符串转换整数 (atoi)

[LeetCode] 8. 字符串转换整数 (atoi)

LeetCode(8. 字符串转换整数 (atoi))