菜鸟成长日记
本想着用遍历的方法写,脑子转不过来。。。还是正则比较香
class Solution:
def myAtoi(self, s: str) -> int:
import re
num=re.findall("^[\+\-]?[0-9]+",s.lstrip())[0]
try:
res = int(num)
except ValueError:
res=0
return max(min(res,pow(2,31)-1),pow(-2,31))
注意点:
- \+表示识别"+";\-表示识别"-";\d表示识别数字;用\表示是识别字符,而不是其他意思,如+在正则中有其他含义
- []表示一个区间,比如[\+\-]表示识别"+“或”-"
- ^表示识别的起始位置,意思是识别出来的字符串第一个字符必须是"+“或”-"
- ?表示识别前面的子表达式零次或一次,意思是"+“或”-"可以没有或者有一个
- +表示识别前面的子表达式一次或多次,意思是至少需要一个数字
运行结果: 时间-48 ms;内存-13.8 MB