一道OJ的题目,不晓得错在那里,求高手解答

Sol_Jee 2011-04-17 10:53:48
短信



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");
}
}
显示答案错误,我实在没看出错在那里,求解!!!!!!!!!!
...全文
128 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjs100901 2011-04-18
  • 打赏
  • 举报
回复
在state为2时,i要连跳四步。
if(i+3<len&&(s[i])=='l'&&(s[i+1])=='o'&&(s[i+2])=='v'&&(s[i+3])=='e')
{
state=2;
i+=4;
}
Sol_Jee 2011-04-18
  • 打赏
  • 举报
回复
http://acm.swust.edu.cn/oj/exp/32/28/ 原题链接
Sol_Jee 2011-04-18
  • 打赏
  • 举报
回复
i love you 只能小写
书虫 2011-04-17
  • 打赏
  • 举报
回复
是不是区分大小写?
Ulfsaar 2011-04-17
  • 打赏
  • 举报
回复
3
illoveyou
Yes
这组数据不对
Ulfsaar 2011-04-17
  • 打赏
  • 举报
回复
给下原题链接吧

64,653

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧