Offer 驾到,掘友接招!我正在参与2022春招打卡活动,点击查看活动详情。
一、题目描述
884. 两句话中的不常见单词 - 力扣(LeetCode) (leetcode-cn.com)
句子 是一串由空格分隔的单词。每个 单词 仅由小写字母组成。
如果某个单词在其中一个句子中恰好出现一次,在另一个句子中却 没有出现 ,那么这个单词就是 不常见的 。
给你两个 句子 s1 和 s2 ,返回所有 不常用单词 的列表。返回列表中单词可以按 任意顺序 组织。
示例 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)