NO.8 字符串转整数(中等)
题目描述:在找到第一个非空字符之前,需要移除掉字符串中的空格字符。如果第一个非空字符是正号或负号,选取该符号,并将其与后面尽可能多的连续的数字组合起来,这部分字符即为整数的值。如果第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。字符串可以在形成整数的字符后面包括多余的字符,这些字符可以被忽略,它们对于函数没有影响。当字符串中的第一个非空字符序列不是个有效的整数;或字符串为空;或字符串仅包含空白字符时,则不进行转换。若函数不能执行有效的转换,返回 0。
说明:假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231, 231 − 1]。如果数值超过可表示的范围,则返回 INT_MAX (231 − 1) 或 INT_MIN (−231) 。
其实感觉这个题目确实不好做,我第一次做没有做出来,后面隔了一天再做才做出来的,下面直接上代码
class Solution:
def myAtoi(self, str):
"""
:type str: str
:rtype: int
"""
nstr=[]
k=0
s=str.strip()
if s=='':
return 0
if s[0]=='+' or s[0]=='-':
nstr.append(s[0])
k=1
for i in range(k,len(s)):
if '0'<=s[i]<='9':
nstr.append(s[i])
else:
break
news=''.join(nstr)
try:
newi=int(news)
except ValueError:
return 0
if newi<-2**31:
return -2**31
elif newi>2**31-1:
return 2**31-1
else:
return int(news)
NO.9 回文数(简单)
题目描述:判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
这个题目很简单,在一定程度上感觉像题目7的简化版,话不多说,代码如下:
class Solution:
def isPalindrome(self, x):
"""
:type x: int
:rtype: bool
"""
s=str(x)
if s==s[::-1]:
return True
else:
return False