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+篇,公众号对话框回复【数据结构与算法】、【算法】、【数据结构】中的任一关键词,获取系列文章合集。

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

AHB总线协议 1. 简介         AHB总线规范是AMBA总线规范的一部分,AMBA总线规范是ARM公司提出的总线规范,被大多数SoC设计采用,它规定了AHB (Advanced High-performance Bus)、ASB (Advanced System Bus)、APB (Advanced Peripheral Bus)。AHB用于高性能、高时钟频率的系统结构,典型的应用如ARM核与系统内 阅读详情

相关推荐

华为昇腾服务器npu中安装paddle,pytorch等环境,训练代码迁移适配等问题记录

参考文档:https://github.com/PaddlePaddle/PaddleCustomDevice/blob/develop/backends/npu/README_cn.md

qq_29220369的博客 4112

【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

从工业夹爪到Shadow Hand:一文看懂机器人灵巧手的硬件进化史(附避坑指南)

本文详细解析了机器人灵巧手从工业夹爪到Shadow Hand的硬件进化历程,涵盖刚性夹持器、自适应夹持器到多指灵巧手的技术突破。文章还提供了选购指南与技术避坑策略,帮助读者根据操作复杂度和环境结构化程度选择最适合的解决方案,适用于制造业、医疗和服务业等多个领域。

weixin_29074409的博客 487

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

深入Google DroidGuard:剖析其自定义虚拟机如何守护Android应用安全(附pcbc文件机制解析)

本文深入解析Google DroidGuard自定义虚拟机如何通过独特的架构设计和加密机制保护Android应用安全。DroidGuard采用动态密钥派生、全加密执行环境和pcbc文件机制,有效防御逆向工程和自动化攻击,为移动安全提供新思路。

weixin_34254464的博客 308

手把手教你用WKT文件在Petrel中创建自定义坐标系统(附CGCS2000转换模板)

本文详细介绍了如何在Petrel软件中利用WKT文件创建自定义坐标系统,并重点提供了CGCS2000坐标系的完整转换模板与实战步骤。通过解析坐标系统的三大支柱(大地坐标系、投影坐标系、基准转换)和WKT文件结构,指导用户从零开始构建适用于本土化项目的坐标系统,确保地质建模与空间数据处理的精度与一致性。

gpt4scribbler的博客 280

【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

三极管共集电极放大电路详解:射极跟随器的原理、计算与应用

三极管放大电路是模拟电子技术的基石,常见组态包括共发射极、共基极和共集电极。其中共集电极电路因输入电阻大、输出电阻小、电压增益接近1的特性,常被用作射极跟随器,在信号缓冲、级间隔离和低阻抗负载驱动等场景中发挥关键作用。其核心价值并非电压放大,而是完成阻抗变换,将高内阻信号源转换为低内阻输出,同时保持信号幅值基本不变。理解其静态工作点计算与动态参数推导(如电压增益、输入输出电阻)是设计实用电路的前提。本文结合12V电源下的具体设计实例和仿真验证,梳理了从电路识别、参数计算到工程实践的完整流程,并指出常见设计误

weixin_29193259的博客 380

【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

人工智能训练师三级考试题型全解析|190道真题样例+30天备考路线

人工智能训练师三级考试并不神秘:理论考190道选择题(刷题就能过),实操考代码+方案设计(练练就会)。核心是花时间——30天系统备考,足以从容通过。如果你想从零开始系统备考,覆盖所有考点和实操技能,欢迎查看我的专栏:📖《人工智能训练师三级·从零到拿证完全指南》80篇系统化内容,覆盖报名、备考、冲刺、拿证全流程六大模块知识点逐个击破,每个考点都讲透实操代码题手把手教学,附带完整参考代码高频考点速记 + 易错题精讲 + 3套模拟试卷30天备考计划 + 冲刺复习策略。

白话机器学习 6098

【网络与爬虫 61】移动端App爬虫终极指南:Android-iOS应用数据提取黑科技全解析

本文全面解析移动端App爬虫技术,涵盖Android和iOS两大平台的数据提取方法。从基础的网络抓包到高级的代码注入,从自动化测试框架到反调试技术绕过,为开发者提供移动端数据采集的完整解决方案和实战经验。

熵数实验室 3029

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

APM32取代STM32的经验分享

我仔细检查了代码中与硬件相关的部分,例如外设寄存器的访问和中断处理程序的设置,并进行了相应的修改。在本文中,我将分享我将APM32引入项目中取代STM32的经验,并提供相应的源代码。我查看了APM32的官方网站、开发者论坛和相关社交媒体,了解了开发者社区的活跃度和可用的资源。总结起来,将APM32替换STM32的过程需要经过几个关键步骤:了解APM32的规格和功能、评估软件生态系统、迁移代码和调试,以及性能和功耗优化。在开始替换之前,我对APM32进行了详细的研究和评估,以确保它能够满足项目的需求。

UplKubernetes的博客 2006

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

visio安装包

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

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

【刷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

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

【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

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

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、付费专栏及课程。

余额充值