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),因为要存储结果列表,需要额外空间

相关推荐
舟舟亢亢39 分钟前
Java集合笔记总结
java·笔记
A_nanda1 小时前
c# MOdbus rto读写串口,如何不相互影响
算法·c#·多线程
丝斯20111 小时前
AI学习笔记整理(66)——多模态大模型MOE-LLAVA
人工智能·笔记·学习
代码雕刻家3 小时前
2.4.蓝桥杯-分巧克力
算法·蓝桥杯
kida_yuan3 小时前
【Linux】运维实战笔记 — 我常用的方法与命令
linux·运维·笔记
Ulyanov3 小时前
顶层设计——单脉冲雷达仿真器的灵魂蓝图
python·算法·pyside·仿真系统·单脉冲
laplace01233 小时前
Claude Skills 笔记整理
人工智能·笔记·agent·rag·skills
三块可乐两块冰3 小时前
【第二十八周】机器学习笔记二十九
笔记
血小板要健康3 小时前
Java基础常见面试题复习合集1
java·开发语言·经验分享·笔记·面试·学习方法
童话名剑4 小时前
情感分类与词嵌入除偏(吴恩达深度学习笔记)
笔记·深度学习·分类