Given two strings s and t which consist of only lowercase letters.
String t is generated by random shuffling string s and then add one more letter at a random position.
Find the letter that was added in t.
Example:
Input:
s = "abcd"
t = "abcde"
Output:
e
Explanation:
'e' is the letter that was added.
思路:比较两个字符串中新添加的字符(字符顺序可能不同)。最开始想法是利用两个字符串的Counters直接相减,返回不同:
from collections import Counter
class Solution:
def findTheDifference(self, s, t):
"""
:type s: str
:type t: str
:rtype: str
"""
dic1 = Counter(s)
dic2 = Counter(t)
return(list(dic2-dic1)[0])
又想到两个字符串除了一个字符不同,剩下全都一致,那么两个字符串加起来,只有这一个多添加的字符个数为奇数。方法有很多。
from collections import Counter
class Solution:
def findTheDifference(self, s, t):
"""
:type s: str
:type t: str
:rtype: str
"""
dic = Counter(s+t)
for k,v in dic.items():
if v%2 !=0 :
return k

本文介绍了一种算法,通过比较两个字符串s和t,找到在t中新增的字符。利用Python的collections.Counter模块,文章提供了两种解决方案:一是直接使用Counter对两个字符串进行计数并相减;二是将两个字符串合并,利用Counter找出出现次数为奇数的字符。
372

被折叠的 条评论
为什么被折叠?



