Problem: 389. 找不同
思路
参考:
解题方法
- python的 coding 在确实有很多不同于Java,C++等方法的地方,得益于一些人们称为pythonic的特性,可以巧妙轻松的解决一些问题;
- python内置collections库的
Counter()
非常适合此题,同时也要熟悉python中字典的减法; - python中的
zip()
方法非常适合将element-wise的元素进行打包,从而实现对成对元素的遍历。
Code
Code: python内置Counter()
class Solution:
def findTheDifference(self, s: str, t: str) -> str:
# python内置标准库collections中的Counter()方法
# 返回str中每个char的计数,key-value pair的dictionary
# python中的的dictionary可以实现减法
# 把dictionary转化成list就可以索引
return list(Counter(t) - Counter(s))[0]
Code: 排序后逐对比较
class Solution:
def findTheDifference(self, s: str, t: str) -> str:
# 排序,注意给s添加一个空字符,保证排序后和t长度相同
s_, t_ = sorted(s) + list(' '), sorted(t)
# 逐对比较,使用zip()打包函数
for (char1, char2) in zip(s_, t_):
if char1 != char2:
return char2