刷題 把字串轉換成整數

2021-10-20 19:58:15 字數 1244 閱讀 1309

題目:將乙個字串轉換成乙個整數,要求不能使用字串轉換整數的庫函式。 數值為0或者字串不是乙個合法的數值則返回0

示例:輸入:"+2147483647"

輸出:2147483647

輸入:「1a33」

輸出:0

思路:思路1,應用字典,按位累加;思路二,應用ascii編碼的距離得到各個位數上的數字。

code:

# 思路一

import re

def seqtonum(s):

num = 0

seq2num =

for i in range(len(s)):

num += 10**(i)*seq2num[s[-i-1]]

return num

# -*- coding:utf-8 -*-

class solution:

def strtoint(self, s):

# write code here

re_d = re.compile(r"[\+\-]?\d+")

if not re_d.search(s) or re_d.search(s).group(0) != s:

return 0

else:

if s.startswith('-'):

return -1*seqtonum(s[1:])

elif s.startswith('+'):

return seqtonum(s[1:])

else:

return seqtonum(s)

# 思路2

# -*- coding:utf-8 -*-

class solution:

def strtoint(self, s):

# write code here

res = 0

flag = 1

for i in range(len(s)):

if s[i] == '+':

continue

elif s[i] == '-':

flag = -1

continue

n = ord(s[i]) - ord('0')

if n >= 0 and n <= 9:

res = 10 * res + n

else:

return 0

return res * flag

把字串轉換成整數

題目 輸入乙個表示整數的字串,把該字串轉換成整數並輸出。例如輸入字串 345 則輸出整數345 分析 這道題儘管不是很難,學過c c 語言一般都能實現基本功能,但不同程式設計師就這道題寫出的 有很大區別,可以說這道題能夠很好地反應出程式設計師的思維和程式設計習慣,因此已經被包括微軟在內的多家公司用作...

把字串轉換成整數

題目 輸入乙個表示整數的字串,把該字串轉換成整數並輸出。例如輸入字串 345 則輸出整數 345。分析 這道題儘管不是很難,學過c c 語言一般都能實現基本功能,但不同程式設計師就這道題寫出的 有很大區別,可以說這道題能夠很好地反應出程式設計師的思維和程式設計習慣,因此已經被包括微軟在內的多家公司用...

把字串轉換成整數

題目 輸入乙個表示整數的字串,把該字串轉換成整數並輸出。例如輸入字串 345 則輸出整數 345。分析 這道題儘管不是很難,學過 c c 語言一般都能實現基本功能,但不同程式設計師就這道題寫出的 有很大區別,可以說這道題能夠很好地反應出程式設計師的思維和程式設計習慣,因此已經被包括微軟在內的多家公司...