題目描述
將一個字符串轉換成一個整數(實現Integer.valueOf(string)的功能,但是string不符合數字要求時返回0),要求不能使用字符串轉換整數的庫函數。 數值為0或者字符串不是一個合法的數值則返回0。
輸入描述:
輸入一個字符串,包括數字字母符號,可以為空
輸出描述:
如果是合法的數值表達則返回該數字,否則返回0
解題思路:
1.首先去掉多余的空格
2.判斷第一個字符是否為+、-
3.計算
# -*- coding:utf-8 -*-
class Solution:
def StrToInt(self, str):
# write code here
str = str.strip()
if not str:
return 0
number, flag = 0, 1
#符號位的判斷是否有正負號
if str[0] == '-':
str = str[1:]
flag = -1
elif str[0] == '+':
str = str[1:]
#遍歷除+,-以外的所有字符,如果遇到非數字,則直接返回0
for c in str:
if c >= '0' and c <= '9':
number = 10*number + int(c)
else:
return 0
number = flag * number
return number