LeetCode刷题笔记第8题:字符串转换整数 (atoi)
^:匹配字符串开头
[+-]:代表一个+字符或-字符
?:匹配一个字符可有可无
\d:一个数字
+:匹配一个或多个字符
\D:一个非数字字符
*:匹配0个或多个字符
想法:
想要得到字符串中的有符号数值,通过正则表达式完成。
class Solution:
def myAtoi(self, s: str) -> int:
# findall(pattern, string, flags=0),(返回string中所有与pattern相匹配的全部字串,返回形式为数组)能够以列表的形式返回能匹配的子串
s = re.findall('^[\+\-]?\d+', s.lstrip()) # 此处的s为列表
# *匹配0个或多个字符
s = int(*s) # 匹配列表中字符串中的字符
s = max(min(s, 2**31 - 1), -2**31) # 防止溢出
return s