百度Android开发工程师笔试题
编程题第二题:
打怪兽AC代码
#include <iostream>
#define MAX 1000000
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
//首先将字符串读入,全部换成对应的攻击,输出时,如果输出碰到连续的字符串,则将其转换为C
char de[MAX];
int fadongc(int p)
{
if(de[p]=='S'&&de[p+1]=='K'&&de[p+2]=='H')
return 1;
if(de[p]=='S'&&de[p+1]=='H'&&de[p+2]=='K')
return 1;
if(de[p]=='H'&&de[p+1]=='S'&&de[p+2]=='K')
return 1;
if(de[p]=='H'&&de[p+1]=='K'&&de[p+2]=='S')
return 1;
if(de[p]=='K'&&de[p+1]=='H'&&de[p+2]=='S')
return 1;
if(de[p]=='K'&&de[p+1]=='S'&&de[p+2]=='H')
return 1;
else
return 0;
}
char f(char c)
{ char sum;
switch(c){
case 'R':sum ='S';
break;
case 'B':sum = 'K';
break;
case 'L':sum = 'H';
break;
}
return sum;
}
int main(int argc, char** argv) {
int n;
char s[MAX];
scanf("%s",s);
int i,j;
for( i=0, j=0;s[i]!='\0';i++,j++)
de[i]=f(s[i]);
for(int i=0;de[i]!='\0'&&i<=j;i++)
{
if(fadongc(i)==1)
{
printf("C");
i=i+2;
}
else
printf("%c",de[i]);
}
return 0;
}#百度##安卓工程师#
查看27道真题和解析