题:输入两句话,返回两句话中不常见单词列表。
“不常见单词”指在一句话中只出现一次,且另一句话没有出现。
解:直接按题意,求在一句话中只出现一次,且另一句话没有出现的单词。用Counter()计算次数。
class Solution: def uncommonFromSentences(self, s1: str, s2: str) -> List[str]: tokens1 = s1.split() tokens2 = s2.split() ans = [] cnt1 = Counter(tokens1) cnt2 = Counter(tokens2) #print(cnt1,cnt2) for k, v in cnt1.items(): if v == 1 and k not in cnt2: ans.append(k) for k, v in cnt2.items(): if v == 1 and k not in cnt1: ans.append(k) return ans
简化一下,在一句中出现一次,另一句话不出现,就等价于在s1+s2中总共出现一次。
def uncommonFromSentences(self, s1: str, s2: str) -> List[str]: s = s1+" "+s2 tokens = s.split() ans = [] cnt = Counter(tokens) for k, v in cnt.items(): if v == 1 : ans.append(k) return ans