力扣884. 两句话中的不常见单词(#Day24)
2023-02-18 16:23:56 时间
力扣884. 两句话中的不常见单词
某个单词在其中一个句子中出现一次,在另一个句子中没有出现,那么我们可以将两个句子的单词合并,统计每个单词出现的次数,次数为1的即为只出现一次的不常见单词。这个思路可以用哈希表实现,key记录单词,value记录出现次数:
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直接计数来实现:
def uncommonFromSentences(s1: str, s2: str) -> List[str]:
s = s1.split() + s2.split()
return [i for i in s if s.count(i) == 1]
对于哈希表的解法是需要先存好,然后再遍历,为了简化书写可以使用海象表达式来实现(海象符要放在括号里):
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
相关文章
- Java锁
- Ansible PlayBook语法
- Ansible 通过Playbook部署LAMP
- InnoDB的锁(Locking)
- Ansible 通过PlayBook部署Zabbix
- 一次死锁(Dead Lock)分析
- 【matplotlib】3-绘制统计图形
- 融资
- 共享文件夹
- Docker Registry
- 编译LAMP部署动态网站环境
- 如何在本地Fabric release-2.2上快速make all成功
- 编译LNMP部署动态网站环境
- Odoo 基于Win10搭建基于Win10搭建odoo14开发环境搭建
- certutil 命令配合PS反弹后门
- nacos v2.2 k8s部署启动报错:nacos server did not start because dumpservice bean construction failure. errMs
- 使用 openPDF 创建带目录的文档时候, 使用如下方式, 可以保证目录页码准确
- Web前端开发HTML笔记
- Web前端开发CSS笔记
- 花个几分钟,带你再了解一下Java注解