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
Pages: 1 2 3 4 5 6