蓝桥杯day03——Bigram 分词

1.题目

给出第一个词 first 和第二个词 second,考虑在某些文本 text 中可能以 "first second third" 形式出现的情况,其中 second 紧随 first 出现,third 紧随 second 出现。

对于每种这样的情况,将第三个词 "third" 添加到答案中,并返回答案。

示例 1:

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

示例 2:

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

提示:

  • 1 <= text.length <= 1000
  • text 由小写英文字母和空格组成
  • text 中的所有单词之间都由 单个空格字符 分隔
  • 1 <= first.length, second.length <= 10
  • first 和 second 由小写英文字母组成

 

2.解析

  • text(一个字符串,我们要在其中查找特定的字符串),first(第一个字符串)和second(第二个字符串)。这个函数的目标是在text中查找所有firstsecond的连续出现后的第三个词 "third" ,并返回这些第三个词 "third" 的列表。
  • s=first + " " + second:定义一个字符串s,是firstsecond的连接,中间有一个空格。
  • ls = re.findall("[a-z]*" + s + " " + "[a-z]+", text):使用正则表达式在text中查找所有以字母开头,接着是s,然后是一个或多个字母的组合。结果存储在列表ls中。
  • ls1 = re.findall(s + " " + s + " " + "([a-z]+)", text):在文本中查找所有s连续出现两次,中间有一个空格和一个或多个字母的组合。结果存储在列表ls1中。
  • if first==second::如果第一个和第二个字符串相同,则执行以下操作。
  • ls1+=re.findall(second + " " + s + " " + "([a-z]+)",text):在文本中查找所有与之前相同的字符串(因为firstsecond相同),即查找所有连续出现两次的字符串,中间有一个空格和一个或多个字母的组合。找到的结果添加到ls1中。

3.python代码

class Solution:def findOcurrences(self, text: str, first: str, second: str) -> list[str]:import res=first + " " + secondls = re.findall("[a-z]*" + s + " " + "[a-z]+", text)ls1 = re.findall(s + " " + s + " " + "([a-z]+)", text)if first==second:ls1+=re.findall(second + " " + s + " " + "([a-z]+)",text)for x in ls:if x.startswith(s):ls1 += re.findall(s + " " + "([a-z]+)", x)return ls1

4.运行结果

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/238759.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

海外IP罗拉rola正版去哪里找?

免费海外IP代理能用吗&#xff1f;和收费的有哪些差异&#xff1f; 如今在这个大数据时代&#xff0c;无论你从事哪个行业&#xff0c;都离不开数据&#xff0c;尤其是做跨境电商的&#xff0c;更一步都离不开海外IP代理&#xff0c;无论是网站引擎优化还是营销推广、数据抓取…

二叉树展开为链表的三种写法

二叉树展开为链表 链表头节点法 新建一个树形链表&#xff0c;前序遍历这个树&#xff0c;遍历到一个节点就往里插 class Solution {TreeNode dummyNode new TreeNode(0,null,null);TreeNode p dummyNode;public void flatten(TreeNode root) {if(root null) return;//线序…

15.oracle的 listagg() WITHIN GROUP () 行转列函数使用

1.使用条件查询 查询部门为20的员工列表 -- 查询部门为20的员工列表 SELECT t.DEPTNO,t.ENAME FROM SCOTT.EMP t where t.DEPTNO 20 ; 效果&#xff1a; 2.使用 listagg() WITHIN GROUP () 将多行合并成一行(比较常用) SELECT T .DEPTNO, listagg (T .ENAME, ,) WIT…

知虾如何选品丨如何使用知虾进行选品和优化策略

在Shopee平台上作为卖家&#xff0c;如何进行选品和优化策略是一个至关重要的问题。而知虾作为一个为Shopee卖家提供数据分析的工具&#xff0c;可以帮助您更好地进行选品和优化策略。在本文中&#xff0c;我们将介绍如何使用知虾进行选品&#xff0c;并提供一些建议和步骤。 知…

python可视化之——seaborn简单图绘制指南

0. 主要内容 该笔记主要包括常见的&#xff1a;散点&#xff0c;折线&#xff0c;box&#xff0c;violin&#xff0c;等图的绘制&#xff0c;可以帮助我们了解数据存在的变量之间的某种关系或者数据趋势。在日常工作中&#xff0c;我们可以进行简单的数据分析和可视化&#xff…

零售数字化“逆熵”的6项原则和8种能力建设|ShopeX徐礼昭

作者&#xff1a;徐礼昭 来源&#xff1a;《三体零售逆熵法则》节选 旧的规则与秩序被打破&#xff0c;无序成为常态 新时代洪流裹挟冲击着传统零售 无序带来的“熵增”侵蚀企业生命 所有人都在不确定性中寻找确定 数字化如何助力企业铸就「反熵增」神器&#xff1f; 如何…

跨越鸿沟-颠覆性产品营销指南笔记

跨越鸿沟-颠覆性产品营销指南笔记 一、发现鸿沟 一、技术采用生命周期 技术采用生命周期 如果采用一个新产品&#xff0c;我们就得改变一贯的行为模式&#xff0c;或者改变我们依赖的其他产品或服务&#xff0c;那么&#xff0c;我们对技术采用的态度就变得很重要&#xff0c…

nodejs微信小程序+python+PHP学科建设管理信息系统的设计与实现-计算机毕业设计推荐

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性&#xff1a;…

Spring 多数据源搭建

目录 前言 正文 1.Druid 介绍和使用 2.其他多数据源解决方案 总结 前言 对于复杂的业务和项目&#xff0c;可能在一个单体项目中存在需要连接多个数据库的情况。这时&#xff0c;就会使用到多数据源&#xff0c;实际中遇到的可能性比较大。 正文 如果一个项目中需要连…

java企业财务管理系统springboot+jsp

1、基本内容 &#xff08;1&#xff09;搭建基础环境&#xff0c;下载JDK、开发工具eclipse/idea。 &#xff08;2&#xff09;通过HTML/CSS/JS搭建前端框架。 &#xff08;3&#xff09;下载MySql数据库&#xff0c;设计数据库表&#xff0c;用于存储系统数据。 &#xff08;4…

从0开始学习JavaScript--JavaScript 单元测试

JavaScript单元测试是保障代码质量和可维护性的关键步骤之一。通过编写和运行单元测试&#xff0c;开发者可以确保代码在不断迭代的过程中依然具有正确的行为。本文将深入探讨JavaScript单元测试的核心概念、工具使用和最佳实践&#xff0c;并通过丰富的示例代码演示其实际应用…

leetcode-141-环形链表(C语言实现)

题目&#xff1a; 给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测系统内部使用整数 pos 来表示链表尾连接到链表中的…