Leetcode 1078. Bigram 分词
Published on 2022-05-18 14:39 in 暂未分类 with 萧海~

Leetcode 1078. Bigram 分词

    在这里插入图片描述
    给出第一个词 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 由小写英文字母组成

    主要思路:字符串分割
    Code:

    class Solution {
    public:
    void str_split(const std::string & src, const std::string & sep, std::vector<string> & vec_str)
    {
    std::string::size_type start = 0;
    int i=0;
    for(std::string::size_type end = src.find(sep, start); end != std::string::npos; end = src.find(sep, start))
    {
    if(end > start)
    {
    string str=src.substr(start, end - start);
    vec_str.push_back(str);
    }
    start = end + sep.length();
    }
    if(start < src.length())
    {
    string str=src.substr(start, src.length() - start);
    vec_str.push_back(str);
    }
    }
    vector<string> findOcurrences(string text, string first, string second) {
    vector<string>vec;
    str_split(text," ",vec);
    vector<string>res;
    for(int i=2;i<vec.size();i++)
    {
    if(vec[i-1]==second&&(vec[i-2]==first))
    {
    res.push_back(vec[i]);
    }
    }
    return res;
    }
    };
    posted @   萧海~  阅读(17)  评论(0编辑  收藏  举报
    相关博文:
    阅读排行:
    · winform 绘制太阳,地球,月球 运作规律
    · AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
    · 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
    · 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
    · 上周热点回顾(3.3-3.9)
    历史上的今天:
    2021-05-18 Qt Creator构建HelloWorld出现Qt\Tools\QtCreator\bin\jom.exe"退出,退出代码 2 错误解决
    2021-05-18 TensorFlow 线性回归
    2021-05-18 开源下载地址
    点击右上角即可分享
    微信分享提示
    电磁波切换