题目描述
给定两个字符串s和t,它们只包含小写字母。字符串t由字符串s随机重排,然后在随机位置添加一个字母。请找出在t中被添加的字母。
- 示例
输入: s = "abcd" t = "abcde"
输出: e
解释: 'e'是那个被添加的字母。
使用Counter类
通过collections模块中的Counter类来统计跟踪值出现的次数。
def findTheDifference(self, s: str, t: str) -> str:
from collections import Counter
sDict = Counter(s)
tDict = Counter(t)
for tk in tDict:
if tk not in sDict or sDict[tk] != tDict[tk]:
return tk
计数频次
使用字符串的count方法计算单个字符出现的频次。
def findTheDifference(self, s: str, t: str) -> str:
for tu in t:
if s.count(tu) != t.count(tu):
return tu
使用位运算符
使用异或运算符留下唯一一个单着的字符,即为被添加的字母。
def findTheDifference(self, s: 'str', t: 'str') -> 'str':
value = 0
for i in s+t:
value ^= ord(i)
return chr(value)
(最近更新:2019年05月15日)