LeetCode 1078. Bigram 分词
发布日期:2021-07-01 03:15:37 浏览次数:2 分类:技术文章

本文共 1693 字,大约阅读时间需要 5 分钟。

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"]

来源:力扣(LeetCode)

链接:https://leetcode-cn.com/problems/occurrences-after-bigram
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 题目很简单,需要理清楚逻辑和边界条件处理好
    在这里插入图片描述
class Solution {
public: vector
findOcurrences(string text, string first, string second) {
vector
ans; string cur; bool firstEq, secondEq; firstEq = secondEq = false; for(int i = 0; i < text.size(); ++i) {
if(text[i] == ' ' && i != text.size()-1) {
if(firstEq == true && secondEq == false) {
if(cur == second) secondEq = true; else {
if(cur != first) firstEq = false; } } else if(firstEq == false) {
if(cur == first) firstEq = true; } else if(firstEq == true && secondEq == true) {
ans.push_back(cur); cur == first ? firstEq = true : firstEq = false; secondEq = false; } cur = ""; } else if(i == text.size()-1) {
cur.push_back(text[i]); if(firstEq == true && secondEq == true) ans.push_back(cur); } else cur.push_back(text[i]); } return ans; }};

转载地址:https://michael.blog.csdn.net/article/details/101173096 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:LeetCode 784. 字母大小写全排列(位运算&回溯)
下一篇:LeetCode 389. 找不同(位运算)

发表评论

最新留言

不错!
[***.144.177.141]2024年04月09日 07时26分37秒