刷题日记-884. 两句话中的不常见单词

85 阅读1分钟

Offer 驾到,掘友接招!我正在参与2022春招打卡活动,点击查看活动详情

一、题目描述

884. 两句话中的不常见单词 - 力扣(LeetCode) (leetcode-cn.com)

句子 是一串由空格分隔的单词。每个 单词 仅由小写字母组成。

如果某个单词在其中一个句子中恰好出现一次,在另一个句子中却 没有出现 ,那么这个单词就是 不常见的

给你两个 句子 s1s2 ,返回所有 不常用单词 的列表。返回列表中单词可以按 任意顺序 组织。

 

示例 1:

输入:s1 = "this apple is sweet", s2 = "this apple is sour"
输出:["sweet","sour"]

示例 2:

输入:s1 = "apple apple", s2 = "banana"
输出:["banana"]

提示:

  • 1 <= s1.length, s2.length <= 200
  • s1 和 s2 由小写英文字母和空格组成
  • s1 和 s2 都不含前导或尾随空格
  • s1 和 s2 中的所有单词间均由单个空格分隔

二、思路分析

由于题目很明确,总结一下就是只需找出仅出现一次的单词,且无需考虑输出顺序,所以可以

直接将两个话通过空格字符 作为分隔,再合成一个list 对list内的str进行sort排序 对已排序的list进行遍历,通过list.count()函数可找出仅出现过一次的单词

三、AC 代码

class Solution(object):
    def uncommonFromSentences(self, A, B):
        """
        :type A: str
        :type B: str
        :rtype: List[str]
        """
        str_list = A.split(' ') + B.split(' ')
        str_list.sort()
        result = []
        while len(str_list):
            s = str_list[0]
            if str_list.count(s) == 1:
                result.append(str_list.pop(0))
            else:
                str_list = str_list[str_list.count(s):]
        return result

范文参考

[Python/Java/JavaScript/Go] 模拟 - 两句话中的不常见单词 - 力扣(LeetCode) (leetcode-cn.com)