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

相关推荐
sali-tec3 分钟前
C# 基于halcon的视觉工作流-章32-线线测量
开发语言·人工智能·算法·计算机视觉·c#
yuxb733 分钟前
Docker 学习笔记(七):Docker Swarm 服务管理与 Containerd 实践
笔记·学习·docker
致***锌11 分钟前
ETF期权多少钱一张?
笔记
lingran__12 分钟前
速通ACM省铜第一天 赋源码(The Cunning Seller (hard version))
c++·算法
塔中妖20 分钟前
【华为OD】数字游戏
算法·游戏·华为od
ゞ 正在缓冲99%…27 分钟前
leetcode438.找到字符串中所有字母异位词
leetcode·滑动窗口
pzx_00130 分钟前
【LeetCode】392.判断子序列
算法·leetcode·职场和发展
我真的是大笨蛋36 分钟前
G1 垃圾收集器深入解析
java·jvm·笔记·缓存
沐怡旸41 分钟前
【算法--链表】146.LRU缓存--通俗讲解
算法·面试
京东零售技术1 小时前
查收你的技术成长礼包
后端·算法·架构