题解 | #MP3光标位置#

https://www.nowcoder.com/practice/eaf5b886bd6645dd9cfb5406f3753e15

模拟场景,没有任何技巧。没有算法



import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNext()) {
            int nums = in.nextInt();
            String operate = in.next();
            int cursorIndex = 0; // 数据索引的位置
            int numMoveIndex = 0;
            char[] chars = operate.toCharArray();
            // 主要思路就是在游标移动的时候,同一时间也记录下屏幕最上方的那个数据位置
            for (int i = 0; i < chars.length; i++) {
                int m = operate(chars[i]);
                cursorIndex += m;
                if (cursorIndex < 0) {
                    cursorIndex = nums - 1;
                } else if (cursorIndex > nums - 1) {
                    cursorIndex = 0;
                }
                // 前两个if else是判断特殊情况
                if (cursorIndex == nums - 1) {
                    numMoveIndex = nums - 4;
                } else if (cursorIndex == 0) {
                    numMoveIndex = 0;
                } else if (cursorIndex < numMoveIndex) { // 后面2中情况,是判断走到屏幕最下方和屏幕最上方时候的处理方案
                    numMoveIndex--;
                } else if (cursorIndex > numMoveIndex + 3) {
                    numMoveIndex++;
                }
            }

            int start = cursorIndex;
            cursorIndex = numMoveIndex;
            int loop = Math.min(nums, 4);
            for (int i = 0; i < loop; i++) {
                if (cursorIndex < 0) {
                    cursorIndex = nums - 1;
                } else if (cursorIndex > nums - 1) {
                    cursorIndex = 0;
                }
                System.out.print((cursorIndex + 1) + " ");
                cursorIndex += 1;
            }
            System.out.println();
            System.out.println(start + 1);
        }
    }

    private static int operate(char c) {
        if (c == 'U') {
            return -1;
        } else if (c == 'D') {
            return 1;
        } else {
            return 0;
        }
    }
}


全部评论

相关推荐

最近经历我的处女面,还是一家大厂,笑自己不自量力,面试官态度特好,问的问题也很专业。好多问题结结巴巴说不出来,还以为自己多厉害呢。跑过去耽误人家时间……😅简历上的写的最好还是实打实,不然一问三不知。
不要卷我了:我的第一次面大厂,前面聊的好好的,直到说让我写道sql,题很简单,但是我完全没准备光刷算法题了,group by后面多写了个字段,我说我写好了面试官笑了一下,后面说要去面下一个同学了
26届校招投递进展
点赞 评论 收藏
分享
就前几天旅游的时候,打开抖音就经常刷到这类视频:以前是高学历学生、老师、主持人,现在做着团播、擦边主播的工作,以及那些经过精心包装的“职业转型”故事——从铺天盖地的VLOG到所谓的“04年夜场工作日记”,这些内容在初中升学、高考放榜等关键时间节点持续发酵。可以说非常直接且精准地在潜移默化地影响着心智尚未成熟的青少年,使其对特殊行业逐渐脱敏。那我就想问了:某些传播公司、平台运营者甚至某些夜场的老板,你们究竟在传递怎样的价值观?点开那些视频,评论区里也是呈现明显的两极分化:一种是​​经济下行论​​:“现在就业市场已经艰难到这种程度了吗?”​​一种是事实反驳派​​:这些创作者往往拥有名校背景,从事着...
牛客刘北:被环境教育的,为了能拿到足够的钱养活自己,不甘心也得甘心,现在的短视频传播的思想的确很扭曲,但是很明显,互联网玩上一年你就能全款提A6,但你全心全意不吃不喝工作一年未必能提A6,但是在高考中考出现这个的确很扭曲,在向大家传播“不上学,玩互联网也可以轻松年入百万”,不是人变了,是社会在变
预测一下26届秋招形势
点赞 评论 收藏
分享
06-07 17:17
嘉兴学院 教师
心爱的idea:你孩
点赞 评论 收藏
分享
06-11 17:39
门头沟学院 Java
小呆呆的大鼻涕:卧槽,用户彻底怒了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务