Leetcode题库——8.字符串转为整数【##】
@author: ZZQ
@software: PyCharm
@file: myAtoi.py
@time: 2018/9/20 20:54
要求:实现 atoi,将字符串转为整数。
1)根据需要丢弃任意多的空格字符,直到找到第一个非空格字符为止
2)如果第一个非空字符是正号或负号,选取该符号;
3) 将其与后面尽可能多的连续的数字组合起来,这部分字符即为整数的值。
4) 如果第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。
5) 字符串可以在形成整数的字符后面包括多余的字符,这些字符可以被忽略,它们对于函数没有影响。
6) 当字符串中的第一个非空字符序列不是个有效的整数;或字符串为空;或字符串仅包含空白字符时,则不进行转换。
7) 若函数不能执行有效的转换,返回 0。
说明:
假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−2^31, 2^31 − 1]。
如果数值超过可表示的范围,则返回 INT_MAX (2^31 − 1) 或 INT_MIN (−2^31) 。
class Solution():
def __init__(self):
pass
def myAtoi(self, str):
"""
:type str: str
:rtype: int
"""
# 导入正则模块
import re
# 字符串中查找全部符合条件的整数,返回的是列表,第一个参数是正则,第二个参数是字符串
# strip()字符串去空格
ret = re.findall(r"^[-+]?\d+", str.strip())
# 判断是否有匹配的值,没有的话返回0,例如"word values 987",匹配不到,返回0
if ret:
ret_str = ret[0] # 匹配的数字的字符串
ret_str2 = "" # 记录去符号的字符串,ret_str后面还要使用,所以定义一个新的变量记录
# 判断是否带有符号 + or -
if ret_str[0] == "-" or ret_str[0] == "+":
ret_str2 = ret_str[1:]
else:
ret_str2 = ret_str
# str转int
ret_int = int(ret_str2)
# 判断第一个字符是否为负号
if ret_str[0] == "-":
# 三目运算符,判断是否溢出
# 如果ret_int <= 2**31则返回-ret_int,否则返回-2**31
return -ret_int if ret_int <= 2**31 else -2**31
else:
return ret_int if ret_int < 2**31 else 2**31-1
else:
return 0
if __name__ == "__main__":
answer = Solution()
str = " -42"
print(answer.myAtoi(str=str))
Leetcode题库——8.字符串转为整数【##】的更多相关文章
- LeetCode题库13. 罗马数字转整数(c++实现)
问题描述: 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ...
- Leetcode题库——13.罗马数字转整数
@author: ZZQ @software: PyCharm @file: Luoma2Int.py @time: 2018/9/16 17:06 要求: 罗马数字转数字 字符 数值 I 1 V 5 ...
- [LeetCode] String to Integer (atoi) 字符串转为整数
Implement atoi to convert a string to an integer. Hint: Carefully consider all possible input cases. ...
- leetcode刷题笔记08 字符串转整数 (atoi)
题目描述 实现 atoi,将字符串转为整数. 在找到第一个非空字符之前,需要移除掉字符串中的空格字符.如果第一个非空字符是正号或负号,选取该符号,并将其与后面尽可能多的连续的数字组合起来,这部分字符即 ...
- [LeetCode] 8. String to Integer (atoi) 字符串转为整数
Implement atoi which converts a string to an integer. The function first discards as many whitespace ...
- leetcode题库
leetcode题库 #题名题解通过率难度出现频率 1 两数之和 46.5%简单2 两数相加 35.5%中等3 无重复字符的最长子串 31.1%中等4 寻找两个有序数组的中位 ...
- Leetcode(8)字符串转换整数
Leetcode(8)字符串转换整数 [题目表述]: 请你来实现一个 atoi 函数,使其能将字符串转换成整数. 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止. 当我 ...
- MySQL 将 字符串 转为 整数
MySQL 将 字符串 转为 整数 1.CAST(epr AS type) 1)type 为 SIGNED " AS SIGNED); 效果如下: 2)type 为 UNSIGNED &qu ...
- Leetcode(8)-字符串转整数
实现 atoi,将字符串转为整数. 在找到第一个非空字符之前,需要移除掉字符串中的空格字符.如果第一个非空字符是正号或负号,选取该符号,并将其与后面尽可能多的连续的数字组合起来,这部分字符即为整数的值 ...
随机推荐
- CANVAS实现调色板 之 我的第一个随笔
主题代码 <canvas id="color"></canvas> <script> var color=document.getElement ...
- Linux服务-mysql基础篇
目录 1. 关系型数据库介绍 1.1 数据结构模型 1.2 RDBMS专业名词 1.3 关系型数据库的常见组件 1.4 SQL语句 2. mysql安装与配置 2.1 mysql安装 2.2 mysq ...
- PHP通过_call实现多继承
原文地址:http://small.aiweimeng.top/index.php/archives/53.html 上一篇讲到php可以通过接口是实现代码的复用. 那么这篇文章简单介绍下使用_cal ...
- 针对Windows 64位系统中Matlab没有LED Control Activex控件的解决方法
Win 10 64bits系统中Matlab 64位软件没有LED Control Activex控件,LED ActiveX Control控件位于Gauges Blockset模块中,而Gauge ...
- ALV-TREE -转
****要注意创建相应程序的屏幕0100**** 在一些情况下,输出的ALV可能用树形结构更容易展现数据之间的相互关联,为了输出ALV-TREE主要用到的是容器类(如CL_GUI_CONTAINER或 ...
- 20155327 2017-2018-2 《Java程序设计》第一周学习总结
20155327 2017-2018-2 <Java程序设计>第一周学习总结 教材学习内容总结 三大平台: 1.Java SE:JVM,JRE,JDK,java语言 JVM:Java虚拟机 ...
- c++ 有序二叉树的应用
实作:以有序二叉树记录学生签到时间及名字,然后以名字升序输出学生签到信息 stricmp,strcmpi 原型:extern int stricmp(char *s1,char * s2); 用法:# ...
- CF 700 E. Cool Slogans
E. Cool Slogans 链接 题意: 给定一个字符串S,从中选出k个子串a[1],a[2]...a[k],满足a[i]在a[i+1]中出现了两次(可以重叠),求最大的k. 分析: 建出SAM, ...
- Kafka系列三 java API操作
使用java API操作kafka 1.pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xs ...
- JAVA基础 XML生成与解析和String包装类下 .replace方法的使用以及char和字符序列的使用场景
ptLink0.setText(arbu.getPtLink().replace("&","&")); // 如果像 '&','& ...