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

相关推荐
JAVA学习通6 分钟前
零基础OSS组件(Java)
java·linux·leetcode
Python智慧行囊7 分钟前
图像处理(三)--开运算与闭运算,梯度运算,礼帽与黑帽
人工智能·算法·计算机视觉
前端小L8 分钟前
动态规划的“细节魔鬼”:子序列 vs 子数组 —— 最长重复子数组
算法·动态规划
程序员大雄学编程10 分钟前
「机器学习笔记12」支持向量机(SVM)详解:从数学原理到Python实战
笔记·机器学习·支持向量机
草莓熊Lotso10 分钟前
《算法闯关指南:优选算法--二分查找》--19.x的平方根,20.搜索插入位置
java·开发语言·c++·算法
YJlio14 分钟前
Process Monitor 学习笔记(5.7):长时间运行追踪与日志文件体积的控制
java·笔记·学习
sali-tec16 分钟前
C# 基于halcon的视觉工作流-章46-不匀面划痕
人工智能·算法·计算机视觉·c#
JJJJ_iii19 分钟前
【机器学习03】学习率与特征工程、多项式回归、逻辑回归
人工智能·pytorch·笔记·学习·机器学习·回归·逻辑回归
_dindong34 分钟前
Linux网络编程:宏观网络体系
linux·网络·笔记·学习
yuniko-n1 小时前
【力扣 SQL 50】连接
数据库·后端·sql·算法·leetcode