一道OJ的题目,不晓得错在那里,求高手解答
短信
Time Limit: 1000MS
Memory Limit: 65536KB
Submissions: 402
Accepted: 108
Description某日,小Y同学迷恋上一女生,于是决定向该女生表白。可是,悲剧往往发生在帅哥身上。在小Y同学表白后,该女生发来一短信,该短信由一行字符串组成。并告知小Y同学,如若能从中找出字符串 “i”“love”“you”三个字符串,并且这三个字符串在短信中是顺序的,并且任意两个不能相邻,则表示她喜欢小Y同学。请你写一段程序帮小Y同学解决这个问题吧!InputN组测试数据,
每组测试数据一行
Output对应每组测试数据的结果,如果存在 顺序的 并且互不相邻 的三个字符串“i”“love”“you”串则输出“Yes”,否则输出“No”
Sample Input
2
Iloveanbyou
woibuloveayou
Sample Output
No
Yes
附上我的程序
#include <stdio.h>
#include <string.h>
#include"iostream"
using namespace std;
main()
{
char s[256];
int i, n, len, state;
cin>>n;
getchar();
while(n--)
{
state = 0;
gets(s);
len = strlen(s);
for(i=0;state<3 && i<len;i++)
{
if(state==0)
{
if((s[i])=='i')
{
state=1;i++;
}
}
else if(state==1)
{
if(i+3<len&&(s[i])=='l'&&(s[i+1])=='o'&&(s[i+2])=='v'&&(s[i+3])=='e')
{
state=2;
i++;
}
}
else if(state==2)
{
if(i+2 < len&&s[i]=='y'&&s[i+1]=='o'&&s[i+2]=='u')
{
state=3;
i++;
}
}
}
if(state==3) printf("Yes\n");
else printf("No\n");
}
}
显示答案错误,我实在没看出错在那里,求解!!!!!!!!!!