前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >力扣884. 两句话中的不常见单词(#Day24)

力扣884. 两句话中的不常见单词(#Day24)

作者头像
才浅Coding攻略
发布2022-12-12 17:58:39
发布2022-12-12 17:58:39
15600
代码可运行
举报
文章被收录于专栏:才浅coding攻略才浅coding攻略
运行总次数:0
代码可运行

力扣884. 两句话中的不常见单词

某个单词在其中一个句子中出现一次,在另一个句子中没有出现,那么我们可以将两个句子的单词合并,统计每个单词出现的次数,次数为1的即为只出现一次的不常见单词。这个思路可以用哈希表实现,key记录单词,value记录出现次数:

代码语言:javascript
代码运行次数:0
复制
def hash_solution(s1: str, s2: str) -> List[str]:
    s = s1.split() + s2.split()
    hash_dic = defaultdict(int)
    res = []
    for i in s:
        hash_dic[i] += 1
    for i, j in hash_dic.items():  # 哈希表的key是单词,值是出现的次数
        if j == 1:
            res.append(i)
    return res
    
s1 = "this apple is sweet"
s2 = "this apple is sour"
print(hash_solution(s1, s2))  # ['sweet', 'sour']

相同的思路也可以直接用python的库函数count直接计数来实现:

代码语言:javascript
代码运行次数:0
复制
def uncommonFromSentences(s1: str, s2: str) -> List[str]:
    s = s1.split() + s2.split()
    return [i for i in s if s.count(i) == 1]

对于哈希表的解法是需要先存好,然后再遍历,为了简化书写可以使用海象表达式来实现(海象符要放在括号里):

代码语言:javascript
代码运行次数:0
复制
def walrus_solution(s1: str, s2: str) -> List[str]:
    return [k for k, v in c.items() if v == 1] if (c := Counter(s1.split()) + Counter(s2.split())) else []

END

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-01-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 才浅coding攻略 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档