题目在这:​​https://leetcode-cn.com/problems/find-the-difference/​

法一:

用字符串S建立哈希表,元素为key,出现次数为val。
然后遍历字符串T,如果T中字符不在哈希表中,或者出现次数大于S中出现次数(即哈希表中key对应的val为负数),则失败。

完整代码

class Solution:
def findTheDifference(self, s: str, t: str) -> str:
from collections import Counter



hash_map = Counter(s)

for i in t:
if i in hash_map:
hash_map[i] -=1
if hash_map[i] <0:
return i
else:
return

法二:

因为仅仅添加了一个元素,所以字符串中ascll码之和再相减,就是新加的那个字符的ascll码。再转换成字符返回就行了 。

完整代码

class Solution:
def findTheDifference(self, s: str, t: str) -> str:
return chr(sum(map(ord, t))-sum(map(ord,s)))

其中 :
ord :字符串转ascll码
chr :ascll码转字符串