字符串转换整数(atoi)
题目
个人解
收昨天第七题的影响,看到这个题就浮现了这个比较简单直接的解法。
class Solution(object):
def myAtoi(self, s):
"""
:type s: str
:rtype: int
"""
s+='#' #保证下面while循环数组不超过界限
a=list(str(s)) #字符转化为数组
i=0
str1=''
fuhao='' #如是有符号,保存一下符号
while a[i]==' ': #遍历掉开头的空格
i+=1
if a[i]=='+' or a[i]=='-': #有符号就保存符号
fuhao+=a[i]
i+=1
while a[i].isdigit(): #找到所有连续的数字
str1+=a[i]
i+=1
if len(str1)==0: #后面是判定然后输出
return 0
elif int(fuhao+str1)>2147483647:
return 2147483647
elif int(fuhao+str1)<-2147483648:
return -2147483648
else:
return int(fuhao+str1)
结果也是还凑合的
大佬一行解
这个解法标题就很过分,。。。。Python 1行 为什么可以用正则表达式?
下面是一位老哥展开上面一行代码的结果,我感觉还是一行帅啊,供有疑惑的人学习。
官方解-自动机的概念
here
这是确定有限状态机(deterministic finite automaton, DFA)。
三种方法感觉正则匹配最方便,效果也很好,ifelse很容易理解,DFA需要点功底的。
权限&免责&交流声明