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之路的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode 1609. 奇偶树 / 1078. Bigram 分词 / 825. 适龄的朋友(计数排序)
LeetCode 1609. 奇偶树 / 1078. Bigram 分词 / 825. 适龄的朋友(计数排序)
LeetCode -- 1078. Occurrences After Bigram