Skip to content

E1078: Bigram分词

https://leetcode.cn/problems/occurrences-after-bigram/

思路:注意到text是以空格分割的,因此可以用流函数来构建wordList,再寻找符合条件的答案插入到结果列表即可

cpp
class Solution
{
public:
    vector<string> findOcurrences(string text, string first, string second)
    {
        vector<string> wordList;
        stringstream ss(text);
        string word;
        while (ss >> word) 
        {
            wordList.push_back(word);
        }

        vector<string> result;
        for (int i = 0; i < wordList.size() - 2; i++)
        {
            if (wordList[i] == first && wordList[i + 1] == second)
            {
                result.push_back(wordList[i + 2]);
            }
        }
        return result;
    }
};

思路:分词后遍历即可

cpp
class Solution {
public:
    vector<string> findOcurrences(string text, string first, string second) {
        //遍历即可
        //将text分词
        vector<string> dic;
        string tmp="";
        for(int i=0;i<text.size();i++){
            if(text[i]!=' ') tmp+=text[i];
            else{
                dic.push_back(tmp);
                tmp="";
            }
        }
        dic.push_back(tmp);
        vector<string> ans;
        for(int i=0;i<dic.size();i++){
            if(dic[i]==first){
                if(i+2<dic.size()&&dic[i+1]==second){
                    ans.push_back(dic[i+2]);
                }
            }
        }
        return ans;
    }
};