百度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;
}
#百度##安卓工程师#
全部评论
没看懂,为啥啊,智商太低
点赞 回复 分享
发布于 2017-09-11 22:12
第一题那个座位的又没有看懂
点赞 回复 分享
发布于 2017-09-11 21:18
你这if else也太多了吧,直接连续三个加起来不就知道了
点赞 回复 分享
发布于 2017-09-11 21:18

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务