首页 > 试题广场 >

迷路的牛牛

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

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


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

输入

3
LRR

输出

E
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException{
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(reader.readLine().trim());
        String str = reader.readLine().trim();

        String[] d = {"N", "W", "S", "E", "N"};
        int res = 0;
        for(int i=0;i<n;++i) {
            if(str.charAt(i) == 'L') {
                ++res;
            }else {
                --res;
            }
        }

        if(res >= 0) {
            System.out.println(d[res%4]);
        }else {
            res = -res;
            System.out.println(d[4-res%4]);
        }
    }
}
发表于 2018-09-08 13:35:51 回复(0)
#默认为北方,北,东,南,西
outstr = 'NESW'
point = 0
n = input()
n = int(n)
letter = input()
for i in letter:
    if i=='L':
        point-=1
    else:
        point+=1
    if point>0 and point ==4:
        point = 0
    elif point<0 and point==-5:
        point = 3
print(outstr[point])

发表于 2018-12-26 11:44:25 回复(0)
if __name__ == '__main__':
    count = int(input())  
    string1 = input()
    countl=0
    countr=0
    for i in range(count):
        if string1[i]=='L':
            countl+=1
        else:countr+=1
    if countl>=countr:
        flag=1
    else:flag=0
    
    if abs(countl-countr)%4==0:
        print('N')
    elif abs(countl-countr)%4==2:
        print('S')
    else:
        pnum=(abs(countl-countr)%4)//2
        flag=(1-flag)*pnum+flag*(1-pnum)
        print('%s'%('W'*flag+'E'*(1-flag)))

发表于 2018-09-03 23:59:24 回复(0)