题目:
Implement atoi to convert a string to an integer.
- 大意:就是手动实现C语言里常用的atoi函数。。。
思路和吐槽:
我最讨厌这种了,完全的信息不对称。。要讨论的情况只有不断提交才知道出题人什么意思,我怎么知道你要求的是什么,况且这是算法题又不是工程题。。。。幸亏这道题比较简单,多试几次也不太费时。
代码
Python
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
class Solution(object): def myAtoi(self, str): """ :type str: str :rtype: int """ str = str.strip() if not str: return 0 ans = [] neg = "-" pos = "+" ch = str[0] if ch == neg: c = -1 elif ch == pos: c = 1 elif ch.isdigit(): ans.append(ch) c = 1 else: return 0 for ch in str[1:]: if ch.isdigit(): ans.append(ch) else: break ans_str = "".join(ans) if ans_str: ans = c * int(ans_str) if ans > 2147483647: return 2147483647 elif ans < -2147483648: return -2147483648 else: return ans else: return 0 |