Day16

作者: wendy_要努力努力再努力 | 来源:发表于2017-11-15 11:45 被阅读0次
    1. Valid Palindrome
      **思路:判断字符串是否为回文。关键是只保留字符串中的数字和字母的的部分,用isalnum()函数,然后是将所有大写转化为小写,lower()函数。


    class Solution(object):
        def isPalindrome(self, s):
            """
            :type s: str
            :rtype: bool
            """
            a = []
            for i in s:
                if i.isalnum():
                    a.append(i.lower())
            
            for j in range(len(a)/2):
                if a[j] != a[len(a)-j-1]:
                    return False
            return True
    

    1. Single Number
      **思路:题目限制了时间复杂度O(n),空间复杂度O(1)。所以那种简单粗暴的比一圈的方式是不可取的。我们可以用异或的方式来找到那个唯一不成对的数。
      期间我们用到了python内置函数reduce()。reduce() 函数会对参数序列中元素进行累积。
      函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给reduce中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。

    reduce(function, iterable[, initializer])

    class Solution(object):
        def singleNumber(self, nums):
            """
            :type nums: List[int]
            :rtype: int
            """
            return reduce(operator.xor, nums)
    

    相关文章

      网友评论

          本文标题:Day16

          本文链接:https://www.haomeiwen.com/subject/wwjcvxtx.html