Leetcode 1078.Bigram 分词

题目地址

思路

这道题读完题目后,思路大概就清晰了。
首先将text分词,存入一个vector中。
之后就是对firstsecond的配对了,此时就比较巧妙地将i设置为2开始,这样就避免了越界行为。
如果上面这句话没看懂,你看看下面的代码就很清晰了。

代码实现(C++)

class Solution {
public:
    vector<string> findOcurrences(string text, string first, string second) 
    {
        vector<string> words;
        int left=0;
        while(true)
        {
            string word;
            if(left==text.size())
            {
                break;
            }
            for(;left<text.size();left++)
            {
                if(text[left]!=' ')
                {
                    word+=text[left];
                    if((left+1)==text.size())
                    {
                        words.push_back(word);
                    }
                }
                else
                {
                    left++;
                    words.push_back(word);
                    break;
                }
            }
        }
        for(int i=0;i<words.size();i++)
        {
            cout<<words[i]<<" ";
        }
        vector<string> res;
        for(int i=2;i<words.size();i++)
        {
            
            if(words[i-2]==first&&words[i-1]==second)
            {
                res.push_back(words[i]);
            }
        }
        return res;
    }
};

总结

今天的每日一题还是比较考验简单的基本功。

上一篇:NSIS安装失败或文件被占用时,提示用户改安装路径


下一篇:springboot+mybatis d2admin 前后端分离搭建过程