首页 > 代码库 > B - 变形课
B - 变形课
Description
呃......变形课上Harry碰到了一点小麻烦,因为他并不像Hermione那样能够记住所有的咒语而随意的将一个棒球变成刺猬什么的,但是他发现了变形咒语的一个统一规律:如果咒语是以a开头b结尾的一个单词,那么它的作用就恰好是使A物体变成B物体. Harry已经将他所+会的所有咒语都列成了一个表,他想让你帮忙计算一下他是否能完成老师的作业,将一个B(ball)变成一个M(Mouse),你知道,如果他自己不能完成的话,他就只好向Hermione请教,并且被迫听一大堆好好学习的道理.
Input
测试数据有多组。每组有多行,每行一个单词,仅包括小写字母,是Harry所会的所有咒语.数字0表示一组输入结束.
Output
如果Harry可以完成他的作业,就输出"Yes.",否则就输出"No."(不要忽略了句号)
Sample Input
so soon river goes them got moon begin big 0
Sample Output
Yes.
Hint
Hint Harry 可以念这个咒语:"big-got-them".
错误代码:(wrong answer)
1 #include<stdio.h> 2 #include<string.h> 3 #define L strlen 4 char spell[100][50]; 5 int flag1=0,flag2=0; 6 int is_X(char b,char a[])//判断是否有类似bbbb的字符出现 7 { 8 if(L(a)==1&&a[0]==b) 9 return 1;10 else if(L(a)!=1&&a[0]==b&&a[L(a)-1]==b)11 return 1;12 else13 return 0;14 }15 int DFS(int x,int m)//实现深度搜索16 { 17 int i;18 if(spell[x][L(spell[x])-1]==‘m‘)19 return 1;20 for(i=0;i<m;i++)21 if(spell[i][0]==spell[x][L(spell[x])-1]){22 int AC=DFS(i,m);23 if(AC==1)24 return 1;25 }26 return 0;27 }28 int main()29 {30 int i,j,AC;31 for(i=0;;i++){//输入32 scanf("%s",spell[i]);33 if(spell[i][0]==‘0‘)34 break;35 }36 flag1=0,flag2=0;//标记bbbb、mmmm类型的字符37 for(j=0;j<i;j++)38 {39 if(is_X(‘b‘,spell[j])==1)40 flag1=1;41 else if(is_X(‘m‘,spell[j])==1)42 flag2=1;43 else if(spell[j][0]==‘b‘)44 AC=DFS(j,i);45 }46 if(AC==1||(flag1==1&&flag2==1))//判断是否搜索到了目标47 printf("Yes.\n");48 else49 printf("No.\n");50 //printf("%d\n",i);51 return 0 ;52 }
心得:思想太单纯了 ,不知道哪个细节没有考虑到
B - 变形课
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。