題目:將乙個字串轉換成乙個整數,要求不能使用字串轉換整數的庫函式。 數值為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 語言一般都能實現基本功能,但不同程式設計師就這道題寫出的 有很大區別,可以說這道題能夠很好地反應出程式設計師的思維和程式設計習慣,因此已經被包括微軟在內的多家公司...