题目描述

将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0

输入描述:

输入一个字符串,包括数字字母符号,可以为空

输出描述:

如果是合法的数值表达则返回该数字,否则返回0

  1. # -*- coding:utf-8 -*-
  2. class Solution:
  3. def StrToInt(self, s):
  4. # write code here
  5. if s=='':return 0
  6. nums = ['0','1','2','3','4','5','6','7','8','9']
  7. labels = ['+','-']
  8. sign = 1
  9. if s[0] in labels:
  10. if s[0]=='-':
  11. sign = -1
  12. s = s[1:]
  13. final_num = 0
  14. for char in s:
  15. if char not in nums:
  16. return 0
  17. else:
  18. final_num = final_num*10 + nums.index(char)
  19. final_num = sign*final_num
  20. if final_num<=0x7FFFFFFF and final_num>=(-0x7FFFFFFF-1):
  21. return final_num
  22. else:
  23. return 0