-
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
- 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)
网友评论