leedcode 字串轉換整數

2021-09-27 07:35:01 字數 1679 閱讀 7310

這裡要求字串的第乙個非空字元要不是正負號要不是數字,所以先把源字串的前面的空字元清空。然後在新的字串中判斷首字元是否是正負號或者數字,如果不是則直接返回。否則就計算字元對應的數值大小,在計算過程中如果發現了數字以外的字元則立即返回,因為題目中要求連續的數字字元。還需要注意的是,在返回自己計算的數值時,都需要判斷數值是否在允許範圍內。

class solution(object):

def myatoi(self, str):

""":type str: str

:rtype: int

"""num = 0

fuhao = ''

max_num = pow(2, 31) - 1

min_num = -1 * pow(2, 31)

len_s = len(str)

if len(str) == 0:

return 0

for i in range(len_s):

if str[i] == ' ':

continue

else:

break

new_str = str[i:]

len_s = len(new_str)

if len_s == 0:

return 0

start = 0

if new_str[start] == '+' or new_str[start] == '-':

fuhao = new_str[start]

start += 1

elif new_str[start] not in ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']:

return 0

for i in range(start, len_s):

if new_str[i] >= '0' and new_str[i] <= '9':

temp = int(new_str[i])

num = num * 10 + temp

if len(fuhao) > 0:

if fuhao == '+':

if num >= max_num:

return max_num

else:

if -num <= min_num:

return min_num

else:

if fuhao == '-':

if -num <= min_num:

return min_num

else:

return -num

else:

if num >= max_num:

return max_num

else:

return num

if fuhao == '-':

if -num <= min_num:

return min_num

else:

return -num

else:

if num >= max_num:

return max_num

else:

return num

字串轉換整數

請你來實現乙個 atoi 函式,使其能將字串轉換成整數。首先,該函式會根據需要丟棄無用的開頭空格字元,直到尋找到第乙個非空格的字元為止。當我們尋找到的第乙個非空字元為正或者負號時,則將該符號與之後面盡可能多的連續數字組合起來,作為該整數的正負號 假如第乙個非空字元是數字,則直接將其與之後連續的數字字...

字串轉換整數

請你來實現乙個 atoi 函式,使其能將字串轉換成整數。首先,該函式會根據需要丟棄無用的開頭空格字元,直到尋找到第乙個非空格的字元為止。當我們尋找到的第乙個非空字元為正或者負號時,則將該符號與之後面盡可能多的連續數字組合起來,作為該整數的正負號 假如第乙個非空字元是數字,則直接將其與之後連續的數字字...

字串轉換整數

不需要讀入空格,因此無論左邊有多少空格直接跳過,移動str指標到第乙個不是空格的位置上。然後判斷符號位,存在三種情況 和無正負號,當沒有符號的時候不需要任何操作,當是 號時使s 1。設定flag 0 flag作用下面詳細說明 遇到其他字元,break 不是數字的字元遍歷完,逐個將數字字元轉化為整數,...