给出第一个词 first 和第二个词 second,考虑在某些文本 text 中可能以 "first second third" 形式出现的情况,其中 second 紧随 first 出现,third 紧随 second 出现。
对于每种这样的情况,将第三个词 "third" 添加到答案中,并返回答案。
示例 1:
输入:text = "alice is a good girl she is a good student", first = "a", second = "good"
输出:["girl","student"]
示例 2:
输入:text = "we will we will rock you", first = "we", second = "will"
输出:["we","rock"]
char ** findOcurrences(char * text, char * first, char * second, int* returnSize){
int i,j,len=strlen(text),n=0,k=0;
char** words = (char**)calloc(len,sizeof(char*));
char** thirds = (char**)calloc(len,sizeof(char*));
char* word = text;
for (i=0; i<=len; i++)
{
if (text[i] == ' ' || text[i] == '\0')
{
text[i] = '\0';
words[n++] = word;
word = &text[i+1];
}
}
for (i=0; i<n-2; i++)
{
if (!strcmp(words[i],first) && i+1<n && !strcmp(words[i+1],second))
{
if (i+2 < n) thirds[k++] = words[i+2];
}
}
*returnSize = k;
return thirds;
}