迷路的牛牛

题目描述

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

输入描述

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

输出描述

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

解题思路

  1. 转向总共就4个,东西南北可以设置一个方向数组按照从北开始顺时针旋转,然后下标标识当前指向的方向
  2. 根据地图旋转那么此时就是需要求解根据这个方向最后下标落到哪里,那么久转换为根据方向去将下标索引左移和右移
  3. 左移右移是一个循环移动的过程需要考虑越界,那么左移index= (index+length-1)%length, 右移index = (index+1)%length;

源代码

import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        String str = sc.next();
        String result = getDirect(N, str);
        System.out.println(result);
    }
    
    
    private static String getDirect(int times, String maps) {
        String[] direct = {"N","E","S","W"};
        int length = direct.length;
        int index = 0;//面向方向的下标
        for (int i=0; i<times; i++) {
            if (maps.charAt(i)=='L') {
                index = (index+length-1)%length;
            } else {
                index = (index+1)%length;
            }
        }
        return direct[index];
    }
}

推荐阅读更多精彩内容

  • (这是15年初学css时记的笔记) 选择器 简单选择器 标签选择器 直接把标签名加前面。 类选择器 用.+ cla...
    burningalive阅读 266评论 0 0
  • 动态规划 111. 爬楼梯思路类似斐波那契数列注意考虑第 0 阶的特殊情况 272. 爬楼梯 II思路类似上题,只...
    6默默Welsh阅读 1,919评论 0 1
  • 第三模块的第三节课,我们谈迭代。 迭代就是小步快跑,把最内核的部分先放出来,不断优化、小范围试错。 让互联网产品在...
    势从千里奔阅读 231评论 0 1
  • 小时候喜欢看《精灵世纪》,片尾曲霞光特别好听,现在都会唱。当时因为一些原因没有看完,最近找出来准备再看一遍,我发现...
    岁月过阅读 118评论 0 1
  • 早间正能量分享!人生十三赢: 第一:赢在平台; 第二:赢在贵人; 第三:赢在信念; 第四:赢在学习; 第五:赢在激...
    享受福袋阅读 52评论 0 0