劍指offer 49. 把字串轉換成整數
阿新 • • 發佈:2018-11-25
原題
將一個字串轉換成一個整數(實現Integer.valueOf(string)的功能,但是string不符合數字要求時返回0),要求不能使用字串轉換整數的庫函式。 數值為0或者字串不是一個合法的數值則返回0。
輸入描述:
輸入一個字串,包括數字字母符號,可以為空
輸出描述:
如果是合法的數值表達則返回該數字,否則返回0
示例:
輸入:+2147483647
輸出:2147483647
輸入:1a33
輸出:0
Reference Answer
思路分析
就是一些特殊處理,比如 +123,就不合理,123前面不需要+,但是-123就合理,因為這是個負數。
# -*- coding:utf-8 -*-
class Solution:
def StrToInt(self, s):
# write code here
if not s:
return 0
sign = 1
if s[0] == '+':
sign = 1
s = s[1:]
elif s[0] == '-':
sign = -1
s = s[1:]
if not s:
return 0
legal_input = [str(x) for x in range(10)]
for x in s:
if x not in legal_input:
return 0
return sign * int(s)