B站的这道笔试题全!是!梗!
今天逛牛客突然看到一道B站的编程题,题目就把我吸引到了叫:脸滚键盘。
那我作为B站老用户了,到底看看怎么个滚法,结果梗一个接着一个。。。。
卧槽嘞,这个视频我在B站看过,我就是叫紫妈怎么了
B站真有你的,我也想叫紫妈,我也想脸滚键盘(滑稽)
这还不算什么,接下来看到的让我笑疯了🤣,题干给出了几个例子
看一下第一个例子,好像也就是一串英文字符串,但是我越看我的DNA动的越厉害,然后我居然试着拼出来
mi sa ka mi ko to ~~~ Misaka Mikoto
等等~~~这不是御坂美琴的全拼吗?
卧槽嘞,把镇站之宝炮姐整出来了可还行,B站真有你的。
然后后面的 dai su ki,作为一个老二次元了,这是最喜欢的意思
连起来就是,最喜欢御坂美琴啦~~~!.
公开表白炮姐,hhhhh.
接下来看第三行,直接整出来个圆周率可还行,来来来,B站研发老哥,你来用脸给我滚出个圆周率出来我看看。
第四行最NM离谱,这明显是个投稿连接,我打开一下整个人裂开了。。。
保加利亚妖王给爷整出来了!!!
弹幕都是 我XXX就好这口。XXX注意身体啊。
B站真有你的
吐槽完了,突然想到这是一道题啊,附上代码吧。😃🤣🤣
#include "string.h" #include <stdio.h> /*每个输入都有若干行,每行的第一个数字为`k`,表示求第`k`个仅出现一次的字。 然后间隔一个半角空格,之后直到行尾的所有字符表示大小姐滚出的字符串`S`。*/ void func(char *a) { int num; sscanf(a,"%d",&num); //获得数字 int an[130]={0}; int len=strlen(a),i,j,k=0,z=0,p; char b[130]={0}; for (i=0;i<len;i++) //找到第一个空格位置,P是真正的字符串 { if (a[i]==' ') { p=i+1; break; } } for (i=p;i<len;i++) //计算出现的字符对应的数量 { an[a[i]]++; } for (i=0;i<130;i++)//找出所有出现一次的字符,放到b里 { if (an[i]==1) { b[k++]=i; } } b[k]='\0'; for (i=p;i<len;i++) //找到第num个仅出现一次的字符 { for (j=0;j<k;j++) { if (a[i]==b[j]) { z++; if (z==num) { printf("[%c]\r\n",a[i]);//输出 return;//退出 } } } } printf("Myon~\r\n");//无满足要求的输出形式 return; } int main () { char str[100000]; while(gets(str)!=NULL) { func(str); } }
当然了,输入也可以分两步:
while(scanf("%d",&num)!=EOF) { gets(str); func(str,num); }然后将func函数里的p去掉,后续for循环用到的p改成1就行了。
最后,B站真有你的.