LeetCode刷题笔记第1078题:Bigram分词

LeetCode刷题笔记第1078题:Bigram分词

题目:

给出第一个词 first 和第二个词 second,考虑在某些文本 text 中可能以 "first second third" 形式出现的情况,其中 second 紧随 first 出现,third 紧随 second 出现。

对于每种这样的情况,将第三个词 "third" 添加到答案中,并返回答案。

想法:

通过空格对文本进行分词,遍历整个文本,找到相邻的first和second,如果这两个词后面还存在单词,则添加到结果列表中。文本遍历结束返回结果列表即可。

复制代码
class Solution:
    def findOcurrences(self, text: str, first: str, second: str) -> List[str]:
        words = text.split()
        return [words[i] for i in range(2, len(words)) if words[i-2] == first and words[i-1] == second]

上述代码中:

时间复杂度:O(n),因为遍历了整体文本

空间复杂度:O(n),因为要存储结果列表,需要额外空间

相关推荐
moshuying1 小时前
块扩散 + GDN 改造:Clover 把「并行生成」塞进了 Agent 的长上下文里
前端·算法
没落之王1 小时前
历史系统建模:宋初太祖太宗「再立天庭」秩序重构推演
人工智能·算法·重构
INGNIGHT2 小时前
91 · 最小调整代价(序列dp)
数据结构·算法·leetcode
moshuying2 小时前
扩散模型开始写代码、开网页了:350 亿参数,速度比 Jev 快一倍
前端·算法
小超人诞生日记2 小时前
C++ 异常机制详解:从抛出捕获到异常安全
c++·算法
深圳老胡2 小时前
STM32C5A3ZG 网络调试总结:从启动失败到连续 Ping 稳定
笔记·stm32·单片机·代码规范
职豚求职小程序刷题2 小时前
宁德时代社招高岗晋升测评笔试改版了
笔记
CarIise3 小时前
JDBC 与数据库事务核心
数据库·笔记
鬼手点金3 小时前
KV Cache 未必是一次性的:可编辑、可组合的“笔记”
java·人工智能·笔记·学习·自动化·1024程序员节
摇滚侠3 小时前
《On Java 中文版 基础卷》阅读笔记 初始化和清理 08
java·开发语言·笔记