LeetCode.1078-两词出现后的单词(Occurrences After Bigram)

Python --- 1078. Occurrences After Bigram 解题报告 Given two stringsfirstandsecond, consider occurrences in some text of the form"first second third", wheresecondcomes immediately afterfirst, andthirdcomes immediately aftersecond. Returnan array of all the wordsthirdfor each occurrence of"fi... 阅读详情

这是小川的第392次更新,第422篇原创

01 看题和准备

今天介绍的是LeetCode算法题中Easy级别的第254题(顺位题号是1078)。给出单词first和单词second,以"first second third"的形式在某些文本中出现,其中second在first之后立即出现,third在second之后立即出现。

对于每个此类事件,将"third"添加到答案中,然后返回答案。

例如:

输入:text = “alice is a good girl she is a good student”, first = “a”, second = “good”
输出:[“girl”,“student”]

输入:text = “we will we will rock you”, first = “we”, second = “will”
输出:[“we”,“rock”]

注意:

  • 1 <= text.length <= 1000

  • 文本由空格分隔的单词组成,每个单词由小写英文字母组成。

  • 1 <= first.length,second.length <= 10

  • first和second由小写英文字母组成。

02 第一种解法

题目很简单,要求找出在first、second出现后紧跟着的第三个单词,而整句话是由空格和单词组成的,直接利用空格切分整句话,变成单词数组,如果数组的当前元素等于first,且当前元素的下一个元素等于second,就将当前元素的下下个元素添加进ArrayList,最后将ArrayList转为String数组返回即可。

public String[] findOcurrences(String text, String first, String second) {
    List<String> result = new ArrayList<String>();
    String[] arr = text.split(" ");
    for (int i=0; i<arr.length-2; i++) {
        if (first.equals(arr[i]) && second.equals(arr[i+1])) {
            result.add(arr[i+2]);
        }
    }
    return result.toArray(new String[result.size()]);
}

03 第二种解法

如果不使用空格拆分,我们也可以采用遍历字符的方式来处理。

三个单词因为是相连的,所以我们使用前两个单词来找,只要能够找到前两个单词组成的子串,往后再找,直到遇到空格,那么就找到了第三个单词,将其截取出来存入ArrayList即可,处理完后,需要将索引往后移,从第二个单词的位置开始下一次寻找。

public String[] findOcurrences2(String text, String first, String second) {
    List<String> result = new ArrayList<String>();
    int m = first.length(), i = 0, len = text.length();
    while (i < len) {
        String tem = first + " " + second + " ";
        int index = text.indexOf(tem, i);
        if (index == -1) {
            break;  
        }
        int start = index+tem.length(), end = start;
        while (end < len && text.charAt(end) != ' ') {
            end++;
        }
        if (start < len) {
            result.add(text.substring(start, end));
        }
        i = index + m + 1;
    }
    return result.toArray(new String[result.size()]);
}

04 小结

算法专题目前已连续日更超过八个月,算法题文章260+篇,公众号对话框回复【数据结构与算法】、【算法】、【数据结构】中的任一关键词,获取系列文章合集。

以上就是全部内容,如果大家有什么好的解法思路、建议或者其他问题,可以下方留言交流,点赞、留言、转发就是对我最大的回报和支持!

AIDD机器学习深度学习药物发现与设计教程总结 AIDD(AI Drug Discovery & Design):是近年来非常火热的技术应用,且已经介入到新药设计到研发的大部分环节当中,为新药发现与开发带来了极大的助力。倾向于机器对数据库信息的自我学习,可以对数据进行提取和学习,一定程度上避免了化合物设计过程中的试错路径,同时还会带来很多全新的结构,为药物发现打破常规的结构壁垒。覆盖了机器学习和深度学习,能与新药研发相结合并实质性的应用到靶点预测、高通量筛选、药物设计、药物的ADMET性质预测等;且算力方面,由早期应用于药物发现领域的决策树、随机 阅读详情

相关推荐

VS2022命令行编译C++报错?一招解决‘fatal error C1034: iostream: 不包括路径集‘

本文针对VS2022命令行编译C++时常见的'fatal error C1034: iostream: 不包括路径集'错误,深入剖析了其根源在于环境变量缺失。文章提供了永久配置用户环境变量(PATH、INCLUDE、LIB)的一劳永逸解决方案,确保在任何终端中都能直接使用cl命令进行编译,并给出了进阶配置与常见错误排查指南。

weixin_29011667的博客 305

【Leetcode】1078. Occurrences After Bigram(第140周赛)(字符串处理)

Given wordsfirstandsecond, consider occurrences in sometextof the form "first second third", wheresecondcomes immediately afterfirst, andthirdcomes immediately aftersecond. For each such o...

小I的博客 290

【寄存器模型】二、前门访问与后门访问

1.后门访问可以更好的完成前门访问能够完成的事情:后门访问不消耗仿真时间,且消耗的运行时间也远小于前门访问的运行时间。 2.后门访问可以完成前门访问不能完成的事:对于某些特定的场景,如网络通信系统中的一些只读计数器,当要验证计数器进位归零的场景时,前门访问无法完成写寄存器操作,只能通过消耗仿真时间来使计数器到达特定的计数值。而后门访问可以直接对只读寄存器赋一个初值......

carrotbanana的博客 9658

1078. Occurrences After Bigram

#1078. Occurrences After Bigram Given words first and second, consider occurrences in some text of the form “first second third”, where second comes immediately after first, and third comes immediatel...

qq_34471804的博客 202

Keil5保姆级安装指南:从破解到STM32开发环境配置(附常见错误解决方案)

本文提供Keil5从安装到STM32开发环境配置的完整指南,包含破解步骤、常见错误解决方案及多芯片支持配置。详细讲解环境预检、核心安装、许可证管理及高效开发环境设置,帮助开发者快速搭建嵌入式开发平台。特别针对安装和卸载过程中的关键问题提供专业解决方案。

weixin_30369041的博客 126

【深大计算机网络】实验三 可靠传输机制 实验报告 附代码

【内附代码】【深大计算机网络】实验三 可靠传输机制 实验报告 附代码

m0_74268508的博客 1654

【LeetCode】5083. Occurrences After Bigram 解题报告(Python & C++)

作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录题目描述题目大意解题方法字符串分割遍历日期 题目地址:https://leetcode.com/problems/occurrences-after-bigram/ 题目描述 Given words first and second, consider occurrences in...

负雪明烛 986

【leetcode】1078. Occurrences After Bigram

题目如下: Given wordsfirstandsecond, consider occurrences in sometextof the form "first second third", wheresecondcomes immediately afterfirst, andthirdcomes immediately aftersecond. For ea...

weixin_34174132的博客 204

Windows - Intel(R) Wireless-AC 9462 该设备无法启动(代码 10)笔记本网卡出现感叹号无法连 wifi 解决方案

前言 一台华硕笔记本,出现了网卡无法启动,导致 wifi 无法连接问题。 如下图所示,电脑突然断网,wifi 图标变为地球,无法搜索与连接: 查看设备 首先右键 此电脑 → 管理,按如下图所示依次展开: 展开后发现出现了感叹号,说明无线设备驱动存在问题: 双击查看状态如下: 解决方案 注意:以下有 4 种解决方案,请以此按照顺序尝试解决。 一、点击驱动程序的标签页,先点击禁用设备,然后再启用设备,观察是否解决: 请选择你有问题的网卡(图片仅示例) 二、在驱动程序的标签页点击卸载设备(不

🏆 前端领域优质创作者 7万+

嵌入式代码审计中常见的漏洞(四)

经过漫长时间的迭代更新,内容从一开始的碎片化网罗搜集,到排版与整合划分,再到学习与实践验证,最后摒弃初始,用自己的语言与实践结论通俗的将它展现出来。强化知识技能的同时也为读者带来更好的阅读体验。 本篇介绍了以下代码安全问题: 编号 漏洞 1 敏感信息硬编码 2 未初始化安全 3 越界访问 4 迭代器失效 5 迭代器尾部解引用

武天旭的博客 3318

lc1078. Occurrences After Bigram

Occurrences After Bigram Easy 25 29 Favorite Share Given words first and second, consider occurrences in some text of the form "first second third", where second comes immediately after first, and t...

weixin_33720078的博客 214

Allegro如何改变线宽操作指导

用Allegro做pcb设计的时候,改变走线线宽是非常常用的功能,如下图。线宽目前是12mil,需要把线宽改成15mil。如何改变线宽操作指导。

weixin_54787054的博客 4255

1078. Occurrences After Bigram*

1078. Occurrences After Bigram* https://leetcode.com/problems/occurrences-after-bigram/ 题目描述 Given words first and second, consider occurrences in some text of the form "first second third", where sec...

珍妮的选择的博客 318

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

【刷leetcode,拿Offer-025】1078. Occurrences After Bigram

题目链接:https://leetcode.com/problems/occurrences-after-bigram/ 题面: 1078.Occurrences After Bigram Easy 3138FavoriteShare Given wordsfirstandsecond, consider occurrences in sometextof the form ...

David_Jett 416

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

【Leetcode】1078. Occurrences After Bigram

题目地址: https://leetcode.com/problems/occurrences-after-bigram/ 给定两个单词sss和ttt,和一个英文句子,句子的定义是若干单词以空格隔开。如果句子的某处的形式是sss后面跟一个空格再跟ttt再跟一个空格再跟某个单词rrr的形式,那么就把rrr搜集起来。要返回所有搜集的rrr。 直接模拟即可。代码如下: import java.util.ArrayList; import java.util.List; class Solution {

数学、算法爱好者的博客 156

贝叶斯统计 [韦来生编]

贝叶斯(Bayes)统计是近几十年来迅速发展起来的数理统计的一个重要分支。贝叶斯方法与经典统计方法的主要不同之处是进行统计推断时除了利用样本信息外,还要利用参数的先验信息,因此可以提高统计推断或统计决策的效果。它在经济、金融、生物、医学、自然科学和社会科学等许多领域具有广泛的应用。贝叶斯方法的研究已渗透到了统计学的几乎所有领域。作者在给中国科学技术大学概率论与数理统计专业本科生开设的“数理统计”课程中有一章专门讲授“贝叶斯方法和统计决策理论”,近十年来也给中国科学技术大学概率统计专业研究生开设过几次“贝叶斯分析”课。本书是在对过去讲稿的内容作了适当的增减和调整的基础上完成的。  本书共分六章。第1章是绪论,介绍了贝叶斯统计的若干基本概念,同时对必要的数理统计的基础知识有重点地作了回顾。第二章介绍了确定先验分布的若干可供选择的方法。第三章介绍了几类常见统计模型参数的后验分布的主要结果和计算方法。第四章和第五章分别介绍了“贝叶斯统计推断”和“贝叶斯统计决策”的内容。第六章介绍了贝叶斯统计计算的若干方法,包括蒙特卡洛方法和马尔可夫链蒙特卡洛(MCMC)方法以及相关统计软件的简介。本书的每一章附右大量的例题和习题,书末附有常用的几个表格和部分习题解答供读者查用。  大约可在54学时内讲授本书的第1章至第六章的主要内容,教师可根据学时需要选讲本书第1章至第六章的部分内容。书中标“*”号的章节可略去不讲,留给读者作为阅读材料。第六章例题中的R代码和部分例题的数据文件等可从作者个人主页下载。  作者在编写本书的过程中参考了J.O.Berger教授的《统计决策论及贝叶斯分析》和茆诗松教授编写的《贝叶斯统计》等书中的一些内容,以及《贝叶斯分析》一书中由张伟平博士编写的有关贝叶斯统计计算的一些内容。在此表示衷心感谢。  本书编写准备过程中,中国科学技术大学统计与金融系的几个研究生帮助完成了本书部分中文的录入和排版,作者对他们的辛勤工作表示真诚的感谢。高等教育出版社为本书的出版给予了大力支持。在此一并致谢。

Leetcode 1078.Bigram 分词(Occurrences After Bigram)

Leetcode 1078.Bigram 分词 1 题目描述(Leetcode题目链接)   给出第一个词 first 和第二个词 second,考虑在某些文本 text 中可能以 “first second third” 形式出现的情况,其中 second 紧随 first 出现,third 紧随 second 出现。 对于每种这样的情况,将第三个词 “third” 添加到答案中,并返回答案。 ...

qq_39378221的博客 223

leetcode 1078 Occurrences After Bigram

lc1078 Occurrences After Bigram trim().split()将原字符串转换成words数组 依次匹配first和second,若两者都能匹配上,则下一个单词为third,将其加入List<String> res 返回 res.toArray(new String[0]) 1 class Solution { 2 public S...

weixin_30487201的博客 88

LeetCode-1078:找出连续双单词后的单词(Occurrences After Bigram)

给出第一个词 first 和第二个词 second,考虑在某些文本 text 中可能以 “first second third” 形式出现的情况,其中 second 紧随 first 出现,third 紧随 second 出现。 对于每种这样的情况,将第三个词 “third” 添加到答案中,并返回答案。 示例 1: 输入:text = “alice is a good girl she is a ...

qq_38236744的博客 404

leetcode 1078. Occurrences After Bigram Bigram 分词-耗时100

Problem:耗时100%,拼接一个空格,然后遍历字符串,不停拼接字符,若是空格则记录之前两个字符串,并比较的,满足题意就加入结果列表。

邹九的个人博客 54

LeetCode //C - 1078. Occurrences After Bigram

Summary: The problem requires finding all words that immediately follow a given bigram (pair of consecutive words) in a text. The solution involves splitting the text into words, then iterating through each 3-word window to check if the first two words mat

Made in Code 241

[Swift]LeetCode1078. Bigram 分词 | Occurrences After Bigram

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/)➤GitHub地址:https://github.com/strengthen/LeetCode➤原文地址:https://www.cnblogs.com/streng...

weixin_30414155的博客 129

【Leetcode_总结】 1078. Bigram 分词 - python

Q: 给出第一个词first 和第二个词second,考虑在某些文本text中可能以 "first second third" 形式出现的情况,其中second紧随first出现,third紧随second出现。 对于每种这样的情况,将第三个词 "third" 添加到答案中,并返回答案。 示例 1: 输入:text = "alice is a good girl sh...

maka_uir的博客 567

leetcode问题--单词搜索 II

leetcode问题--单词搜索 II问题描述问题分析具体代码 #前缀树–单词搜索II 问题描述 给定一个二维网格 board 和一个字典中的单词列表 words,找出所有同时在二维网格和字典中出现的单词。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母在一个单词中不允许被重复使用。 示例: 输入: words = [“oath”,“pea”,“eat”,“rain”] and board = [ [‘o’,‘a’,‘a’,‘n

qq_42511528的博客 363

Leetcode 1078:Bigram分词

题目描述 给出第一个词first 和第二个词second,考虑在某些文本text中可能以 "first second third" 形式出现的情况,其中second紧随first出现,third紧随second出现。 对于每种这样的情况,将第三个词 "third" 添加到答案中,并返回答案。 示例 1: 输入:text = "alice is a good gi...

weixin_35338624的博客 302
上一篇: LeetCode.1071-字符串最大公约数(Greatest Common Divisor of Strings)
下一篇: LeetCode.1089-重复的0(Duplicate Zeros)
程序员小川
博客等级 码龄10年 47粉丝 305原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值