題目描述


解題思路
| 正則表達式 | 描述 |
|---|---|
| ^ | 匹配字符串開頭 |
| [+-] | 代表一個+字符或-字符 |
| ? | 前面一個字符可有可無 |
| \d | 一個數(shù)字 |
| + | 前面一個字符的一個或多個 |
| \D | 一個非數(shù)字字符 |
| * | 前面一個字符的0個或多個 |
max(min(數(shù)字, 231 - 1), -231) 用來防止結(jié)果越界
Python代碼
import re
class Solution:
def myAtoi(self, str: str) -> int:
INT_MAX = 2147483647
INT_MIN = -2147483648
str = str.lstrip() #清除左邊多余的空格
num_re = re.compile(r'^[\+\-]?\d+') #設(shè)置正則規(guī)則
num = num_re.findall(str) #查找匹配的內(nèi)容
num = int(*num) #由于返回的是個列表,解包并且轉(zhuǎn)換成整數(shù)
return max(min(num,INT_MAX),INT_MIN) #返回值