leetcode: 8. String to Integer (atoi)
来源:互联网 发布:知画与永琪圆房的文 编辑:程序博客网 时间:2024/05/16 15:19
Problem
# Implement atoi to convert a string to an integer.## Hint: Carefully consider all possible input cases.# If you want a challenge, please do not see below and ask yourself what are the possible input cases.## Notes: # It is intended for this problem to be specified vaguely (ie, no given input specs).# You are responsible to gather all the input requirements up front.## Update (2015-02-10):# The signature of the C++ function had been updated.# If you still see your function signature accepts a const char * argument, please click the reload button to reset your code definition.## spoilers alert... click to show requirements for atoi.## Requirements for atoi:## The function first discards as many whitespace characters as necessary until the first non-whitespace character is found.# Then, starting from this character, takes an optional initial plus or minus sign followed by as many numerical digits as possible, and interprets them as a numerical value.## The string can contain additional characters after those that form the integral number, which are ignored and have no effect on the behavior of this function.## If the first sequence of non-whitespace characters in str is not a valid integral number, or if no such sequence exists because either str is empty or it contains only whitespace characters, no conversion is performed.## If no valid conversion could be performed, a zero value is returned.# If the correct value is out of the range of representable values, INT_MAX (2147483647) or INT_MIN (-2147483648) is returned.
AC
class Solution(): def myAtoi(self, str): INT_MAX = 2147483647 INT_MIN = -2147483648 i, sign, result = 0, 1, 0 if not str: return result while i < len(str) and str[i].isspace(): i += 1 if str[i] == "+": i += 1 elif str[i] == "-": sign = -1 i += 1 while i < len(str) and "0" <= str[i] <= "9": if result > (INT_MAX - int(str[i])) // 10: return INT_MAX if sign > 0 else INT_MIN result = result * 10 + int(str[i]) i += 1 return result * signif __name__ == '__main__': assert Solution().myAtoi("+-2") == 0 assert Solution().myAtoi("") == 0 assert Solution().myAtoi("-1") == -1 assert Solution().myAtoi("2147483647") == 2147483647 assert Solution().myAtoi("2147483648") == 2147483647 assert Solution().myAtoi("-2147483648") == -2147483648 assert Solution().myAtoi("-2147483649") == -2147483648
阅读全文
0 0
- [LeetCode]8. String to Integer (atoi)
- LeetCode 8. String to Integer (atoi)
- 8. String to Integer (atoi) Leetcode Python
- LeetCode --- 8. String to Integer (atoi)
- LeetCode 8.String to Integer (atoi)
- [Leetcode] 8. String to Integer (atoi)
- [leetcode] 8.String to Integer (atoi)
- [LeetCode] 8.String to Integer (atoi)
- <LeetCode OJ> 8. String to Integer (atoi)
- leetCode 8. String to Integer (atoi)
- 8. String to Integer (atoi) LeetCode
- leetcode 8. String to Integer (atoi)
- leetcode 8. String to Integer (atoi)
- LeetCode OJ 8.String to Integer (atoi)
- Leetcode ☞ 8. String to Integer (atoi)
- 8. String to Integer (atoi) ---Leetcode
- leetcode 8. String to Integer (atoi)
- Leetcode: 8. String to Integer (atoi)(JAVA)
- linux查看主机名以及更改主机名
- 《程序员面试题精选》05.输出一个字符串的所有子串
- 写在前面
- Retrofit2.0的get请求和post请求(入门级)
- 去除URL中带有的jsessionid
- leetcode: 8. String to Integer (atoi)
- Android自定义属性
- mac 系统中用 ngrok 内网穿透实现微信测试
- 从银行转账失败到分布式事务:总结与思考
- hdu 5929 Basic Data Structure(找规律+deque模拟)
- Css
- input标签去掉边框和设置只读格式
- linux 安装QQ2016
- 安装Ubuntu 16.04之后需要做的9件事情 [翻译]