问题描述:

给定两个句子sentence1和sentence2,需要找出这两个句子中不常见的单词。不常见的单词指的是在这两个句子中只出现了一次的单词。要求使用LeetCode进行解答。

解题思路:

为了解决该问题,我们可以首先统计两个句子中每个单词的出现次数。然后,遍历这些单词,找出只在一个句子中出现的单词,即出现次数为1的单词。最后,将这些不常见的单词返回即可。

实现代码:

class Solution:
    def uncommonFromSentences(self, sentence1: str, sentence2: str) -> List[str]:
        # 定义两个字典分别记录句子1和句子2中单词的出现次数
        word_count1 = {}
        word_count2 = {}
        
        # 统计句子1中单词的出现次数
        for word in sentence1.split():
            word_count1[word] = word_count1.get(word, 0) + 1
        
        # 统计句子2中单词的出现次数
        for word in sentence2.split():
            word_count2[word] = word_count2.get(word, 0) + 1
        
        # 找到只在一个句子中出现的单词
        uncommon_words = []
        for word, count in word_count1.items():
            if count == 1 and word not in word_count2:
                uncommon_words.append(word)
        
        for word, count in word_count2.items():
            if count == 1 and word not in word_count1:
                uncommon_words.append(word)
        
        return uncommon_words

# 测试示例
solution = Solution()
sentence1 = "this apple is sweet"
sentence2 = "this apple is sour"
print(solution.uncommonFromSentences(sentence1, sentence2))

代码说明:

上述代码首先定义了一个Solution类,其中的uncommonFromSentences函数用于解决问题。在该函数中,我们首先定义两个字典word_count1和word_count2,分别用于记录句子1和句子2中单词的出现次数。

接着,我们使用split函数将句子1和句子2分割成单词,并遍历分割后的结果。遍历过程中,通过字典的get方法进行单词出现次数的统计,并更新到对应字典中。

完成单词的统计后,我们遍历两个字典中的每个单词,如果该单词在一个字典中出现的次数为1,且不在另一个字典中,就将其添加到不常见单词的列表中。最后,返回不常见单词列表即可。