列表

详情


WY48. 迷路的牛牛

描述

牛牛去犇犇老师家补课,出门的时候面向北方,但是现在他迷路了。虽然他手里有一张地图,但是他需要知道自己面向哪个方向,请你帮帮他。

输入描述

每个输入包含一个测试用例。
每个测试用例的第一行包含一个正整数,表示转方向的次数N(N<=1000)。
接下来的一行包含一个长度为N的字符串,由L和R组成,L表示向左转,R表示向右转。

输出描述

输出牛牛最后面向的方向,N表示北,S表示南,E表示东,W表示西。

示例1

输入:

3
LRR

输出:

E

原站题解

C 解法, 执行用时: 1ms, 内存消耗: 376KB, 提交时间: 2020-11-27

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
int main()
{
    int n;
    char a[1000];
    scanf("%d",&n);
    scanf("%s",a);
    int l=0;
    int r=0;
    for(int i=0;i<n;i++)
    {
        if(a[i]=='L') l++;
        else r++;
    }
    if((l-r)%4==0)printf("N");
    else
    {
        if((l-r)>0)
        {
            switch ((l-r)%4)
            {
                case 1:
                    printf("W");
                    break;
                case 2:
                    printf("S");
                    break;
                case 3:
                    printf("E");
                    break;
            }
        }
        else
        {
            switch ((r-l)%4)
            {
                case 1:
                    printf("E");
                    break;
                case 2:
                    printf("S");
                    break;
                case 3:
                    printf("W");
                    break;
            }
        }
    }
    return 0;
}

C 解法, 执行用时: 2ms, 内存消耗: 300KB, 提交时间: 2019-10-27

#include <stdio.h>

int main()
{
    int n;
    char str[1000];
    scanf("%d%s", &n ,str);
    int i;
    int dir = 0;
    for(i=0;i<n;i++){
        if(str[i]=='L'){
            if(dir == 0){
                dir = 3;
            } else {
                dir--;
            }
        } else if(str[i]=='R') {
            if(dir == 3){
                dir = 0;
            } else {
                dir++;
            }
        }
    }
    switch(dir) {
        case 0:
            printf("N");
            break;
        case 1:
            printf("E");
            break;
        case 2:
            printf("S");
            break;
        case 3:
            printf("W");
            break;
    }
    
    return 0;
}

上一题