题目地址
思路
这道题读完题目后,思路大概就清晰了。
首先将text
分词,存入一个vector
中。
之后就是对first
和second
的配对了,此时就比较巧妙地将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;
}
};
总结
今天的每日一题还是比较考验简单的基本功。