LeetCode 1078 Bigram分词[字符串匹配] HERODING的LeetCode之路

Posted HERODING23

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 1078 Bigram分词[字符串匹配] HERODING的LeetCode之路相关的知识,希望对你有一定的参考价值。

解题思路

由于C++并没有像java那样直接调用split函数对每个单词进行分割,所以遍历分割的话会很麻烦,这里我想到了string数据结构有find函数,那么我只要把目标的first和second组合起来,用find找到其位置,然后把字符串后面的单词放入res数组中即可。实现起来有一个小细节,就是通过用例发现first可能是其中某个单词的一部分,这就不符合要求了,所以要判断每次找到的position所在的单词是不是first,代码如下:

代码

class Solution 
public:
    vector<string> findOcurrences(string text, string first, string second) 
        vector<string> res;
        // 目标字符串
        string target = first + ' ' + second + ' ';
        int len = target.size();
        int pos = 0;
        while((pos = text.find(target, pos)) != string::npos) 
            // 判断是否是隔开的字母
            if(pos == 0 || text[pos - 1] == ' ') 
                int i = pos + len;
                string temp;
                while(i < text.size() && text[i] != ' ') 
                    temp += text[i ++];
                
                res.push_back(temp);    
             
            pos += 1;
        
        return res;
    
;

以上是关于LeetCode 1078 Bigram分词[字符串匹配] HERODING的LeetCode之路的主要内容,如果未能解决你的问题,请参考以下文章

1078. Bigram 分词『简单』

LeetCode 1609. 奇偶树 / 1078. Bigram 分词 / 825. 适龄的朋友(计数排序)

LeetCode 1609. 奇偶树 / 1078. Bigram 分词 / 825. 适龄的朋友(计数排序)

LeetCode -- 1078. Occurrences After Bigram

Leetcode-5083 Occurrences After Bigram(Bigram 分词)

《LeetCode之每日一题》:247.Bigram 分词