剑指offer 面试67题
面试67题:
题目:
链接:https://www.nowcoder.com/questionTerminal/1277c681251b4372bdef344468e4f26e?commentTags=Python
来源:牛客网
将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0
输入描述:
输入一个字符串,包括数字字母符号,可以为空
输出描述:
如果是合法的数值表达则返回该数字,否则返回0
示例1
输入
+2147483647 1a33
输出
2147483647 0
解法一:如果可以利用Python自带的字符串转整数的库函数,那么有
# -*- coding:utf-8 -*- class Solution: def StrToInt(self, s): # write code here try: return int(s) except: return 0
解法二:只需考虑清楚怎么处理特殊的情况就可。
# -*- coding:utf-8 -*- class Solution: def StrToInt(self, s): # write code here numstrs=['0','1','2','3','4','5','6','7','8','9'] sum = 0 label=1 for i in range(len(s)): if i==0: if s[i]=='-': label=-1 continue elif s[i]=='+': continue if s[i] in numstrs: sum =sum*10+numstrs.index(s[i]) else: sum = 0 break return sum*label