flag用于当此单词非前缀时,直接while跳转到下一个单词进行比较即可.
一开始出了点bug,i++应该放到外面,否则当flag==0且sentence[i]!=' '时,i不会++陷入了死循环。
class Solution
{
public:
int isPrefixOfWord(string sentence, string searchWord)
{
int i = 0; int j = 0; int cnt = 1;
bool flag = 1;
while (i<sentence.length())
{
if (sentence[i] == ' ')
{
i++; j = 0;//重新开始比较
flag = 1;//一直找到了空格才行,继续比较
cnt++;
continue;//空格直接跳过
}
if (flag)
{
if (sentence[i] == searchWord[j])
{
j++;
if (j == (searchWord.length()))
return cnt;
}
else
{
flag = 0;//直接去找到下一个空格
j = 0;
}
}
i++;
}
return -1;
}
};