⛅(day26)
给定两个字符串 s
和 t
,它们只包含小写字母。
字符串 t
由字符串 s
随机重排,然后在随机位置添加一个字母。
请找出在 t
中被添加的字母。
示例 1:
输入:s = "abcd", t = "abcde"
输出:"e"
说明:'e' 是那个被添加的字母。
示例 2:
输入:s = "", t = "y"
输出:"y"
题目分析:
题目和例题讲解清楚,在这不在赘述
解题思路:
对于这道题你可以使用两层的for循环遍历两个字符串一个一个比较,也可以使用位运算解题。解题的方法多种,这里介绍一个数据显示超过99%的程序的算法
代码实现
def findTheDifference(s, t):
from collections import Counter
k = Counter(t) - Counter(s)
return list(k.keys())[0]
代码注释
导入类collection使用Counter()方法
Counter()方法的作用是计算出字符串s或t中每个字符出现的次数。
---------------------------------------------
例如s = 'abcb'
print(Counter(s))
输出:
Counter({'b': 2, 'a': 1, 'c': 1})
----------------------------------------------
那么对于k = Counter(t) - Counter(s)
设s = 'abc' ,t = 'bc'
print(Counter(a) - Counter(d))
输出:
Counter({'a': 1})
-----------------------------------------------
keys()方法是获取字典中所有的键
如有字典dict = {'a': 1, 'b': 3, 'c': 1}
print(dict.keys())
输出:
dict_keys(['a', 'b', 'c'])
一般会搭配list()使用,使其变成列表。
因为dict.keys()的类型为
,不是列表 所以我们需要使用list()转化为列表,然后取出列表中的元素即可(因为不同只有一个,所以最后的列表只剩一个元素)
今天就到这,明天见。
❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄end❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄