题目描述
给定两个字符串 s 和 t,它们只包含小写字母。
字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。
请找出在 t 中被添加的字母。
示例:
输入:
s = “abcd”
t = “abcde”
输出:
e
解释:
‘e’ 是那个被添加的字母。
思路分析
- 目的是找出t中被添加的那个字符,思路是建立一个新的字典,key为s中对应的字母,value为出现的次数。
- 第二次遍历t,如果t中出现字典中key没有出现的字符,那么该字符肯定是添加的;另一种情况是:t中添加的是s中出现的字符,那么就遇到一个字符将value减一,总有一个字符会减到小于0,小于0的那个value所对应的key就是添加的字符(这一点想清楚就好写啦)
代码示例
class Solution(object):
def findTheDifference(self, s, t):
"""
:type s: str
:type t: str
:rtype: str
"""
letters = {}
for ch in s:
if ch not in letters:
letters[ch] = 1
else:
letters[ch] += 1
for i in t:
if i not in letters:
return i
else:
letters[i] -= 1
if letters[i] < 0:
return i