来源:牛客网
最近,阴阳怪气的风气开始在HL的宿舍盛行,无论哪个人说什么,其他人就会说:“不会吧?不会吧?不会有人......”;无论哪个人做什么,其他人就会说:“就这?就这?”
有一天,他们又在相互阴阳怪气了。
qh:“就这?”
sh:“就这?这也好意思说就这?”。
hl:“不会吧?不会有人这就开始阴阳怪气了吧?”
xx:“不会吧?不会有人阴阳怪气别人阴阳怪气吧?”
kt:“不会吧?不会有人说话总是阴阳怪气吧?”
大家都看向了kt,他们突然都很想知道,平时是谁阴阳怪气的话说得最多,于是他们拿出了寝室录音机.....
录音机的内容是5个只包含小写字母的字符串,分别表示qh,hl,sh,xx,kt平时说的话,现在他们想让你帮忙统计一下每个人说的话中,“buhuiba”和“jiuzhe”这两个子串的个数,并告诉他们谁阴阳怪气的话说的最多。
提示:字符串中任意个连续的字符组成的子序列称为该串的子串,如bcd是abcde的子串,而ace不是。
输入描述:
Input:
输入有5行,每行一个长度不超过1000的字符串,仅由小写字母组成,每个字符串分别按顺序代表qh,sh,hl,xx,kt说的话。
输出描述:
Output:
输出包含6行,前5行每行输出qh,sh,hl,xx,kt话中”buhuiba”和”jiuzhe”的个数,以空格分隔,第6行输出说阴阳怪气的话数量最多的人的名字,如果有多个人数量一样,则输出”yygqdss”。
示例1
输入
复制 buhuibabuhuiba jiuzhe buhuibajiuzhe jiuzhejiuzhebuhuiba abaababuhuibabuhuiba jiuzhe buhuibajiuzhe jiuzhejiuzhebuhuiba abaaba
输出
复制 qh 2 0 sh 0 1 hl 1 1 xx 1 2 kt 0 0 xxqh 2 0 sh 0 1 hl 1 1 xx 1 2 kt 0 0xx#include <stdio.h> #include <string.h> int f(char *p) { char *s="buhuiba",*a; int k=0; while(*p) { a=s; if(*p!=*a) p++; for(;*p++==*a++;) if(*a=='\0'){ k++; p=p-1;} } return k; } int g(char *p) { char *s="jiuzhe",*a; int k=0; while(*p) { a=s; if(*p!=*a) p++; for(;*p++==*a++;) if(*a=='\0'){ k++; p=p-1;} } return k; } int main() { int c=0,e,x,y,i,b[5],j; char m[1005]; char a[5][3]={"qh","sh","hl","xx","kt"}; for(i=0;i<5;i++){ scanf("%s",m); e=f(m),x=g(m); b[i]=e+x; if(e+x>=c){ c=e+x; y=i;} printf("%s %d %d\n",a[i],e,x); } for(i=0;i<5;i++) for(j=i+1;j<5;j++) if(b[i]>b[j]){ e=b[i]; b[i]=b[j]; b[j]=e;} if(b[4]==b[3]) printf("yygqdss"); else printf("%s",a[y]); } 这个样例过了为什么通过率为零?那位大佬帮我看看
全部评论
(0) 回帖