leetcode-1078:Bigram 分词

简介: 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"]

解题

方法一:split成数组+一次遍历

class Solution {
public:
    vector<string> findOcurrences(string text, string first, string second) {
        //split
        vector<string>strs;
        int n=text.size();
        int i=0;
        while(i<n){
            int start=i;
            while(i<n&&text[i]!=' ') i++;
            strs.push_back(text.substr(start,i-start));
            while(i<n&&text[i]==' ') i++;
        }
        //一次遍历得到结果
        int p=0;
        vector<string> res;
        while(p+2<strs.size()){
            if(strs[p]==first&&strs[p+1]==second) res.push_back(strs[p+2]);
            p++;
        }
        return res;
    }
};
相关文章
|
8天前
|
自然语言处理 Python
python实现分词器
python实现分词器
|
8天前
|
自然语言处理
leetcode-720:词典中最长的单词
leetcode-720:词典中最长的单词
27 0
|
8天前
leetcode-212:单词搜索 II
leetcode-212:单词搜索 II
29 0
|
8天前
leetcode-79:单词搜索
leetcode-79:单词搜索
23 0
|
8天前
|
自然语言处理 Go
golang力扣leetcode 720.词典中最长的单词
golang力扣leetcode 720.词典中最长的单词
22 0
「题解」字符串中的所有单词进行倒排
题目要求 1、构成单词的字符只有26个大写或小写英文字母; 2、非构成单词的字符均视为单词间隔符; 3、要求倒排后的单词间隔符以一个空格表示;如果原字符串中相邻单词间有多个间隔符时,倒排转换后也只允许出现一个空格间隔符; 4、每个单词最长20个字母;
|
存储
LeetCode——819. 最常见的单词
LeetCode——819. 最常见的单词
46 0
|
索引
LeetCode 1859. 将句子排序
一个 句子 指的是一个序列的单词用单个空格连接起来,且开头和结尾没有任何空格。每个单词都只包含小写或大写英文字母。
63 0
|
自然语言处理 BI
分词
中文分词介绍
分词
|
机器学习/深度学习 人工智能 自然语言处理
分词的那些事
使用阿里云学习分词,分词就是指将连续的自然语言文本切分成具有语义合理性和完整性的词汇序列的过程。
分词的那些事

热门文章

最新文章