首页 > 试题广场 >

迷路的牛牛

[编程题]迷路的牛牛
  • 热度指数:159 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
牛牛去犇犇老师家补课,出门的时候面向北方,但是现在他迷路了。虽然他手里有一张地图,但是他需要知道自己面向哪个方向,请你帮帮他。

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


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

输入

3
LRR

输出

E
if __name__ == '__main__':
    num = int(input())
    string = input()
    numl = string.count('L')
    numr = string.count('R')
    x = numl - numr  # 一对LR的操作会抵消
    dict1 = {0: 'N', 1: 'W', 2: 'S', 3: 'E'}
    dict2 = {0: 'N', 1: 'E', 2: 'S', 3: 'W'}
    tmp = x % 4  # 取4的余数,因为4个操作又回到原方向
    if tmp > 0:
        print(dict1[tmp])
    else:
        print(dict2[tmp])

发表于 2019-08-12 13:55:25 回复(0)

let reader=require('readline');
let r1=reader.createInterface({
    input:process.stdin,
    output:process.stdout
});
let table=[];
let check=newMap();
check.set('N',{'L':'W','R':'E'}).set('S',{'L':'E','R':'W'})
.set('E',{'L':'N','R':'S'}).set('W',{'L':'S','R':'N'})
r1.on('line',line=>{
    table.push(line);
    if(table.length==2)
    {
        let ptr='N';
        let temp=table[1];
        for(let i=0;i<temp.length;i++)
            ptr=check.get(ptr)[temp[i]];
        console.log(ptr);
        r1.close();
    }
});

发表于 2018-06-22 16:37:29 回复(0)