题解 | #MP3光标位置#超详细注解

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);
        int size = Integer.parseInt(in.nextLine());
        String operator = in.nextLine();

        int pointer = 1; // 维护当前在第几行
        int curr = 1; // 维护当前在第几首

	  // 遍历操作
        for (int i = 0; i < operator.length(); i++) {
            if (operator.charAt(i) == 'D') { // 下一首操作
                if (++pointer == 5 && curr == size) // 当前行下移,如果超出最后一行,且是最后一首歌
                    pointer = 1; // 当前行设置为1
                else if (pointer == 5) // 如果超出最后一行,不是最后一首歌
                    pointer = 4; // 当前行数保持在第4行
                if (++curr == size + 1) // 歌曲后移一首,如果超出歌曲数量,当前歌曲设置为1
                    curr = 1;
            } else { // 上一首操作,是上面的反操作
                if (--pointer == 0 && curr == 1)
                    pointer = 4;
                else if (pointer == 0)
                    pointer = 1;
                if (--curr == 0)
                    curr = size;
            }
        }


        if (size <= 4) { // 当歌曲不大于4的时候,打印歌曲列表 1 ~ size
            for (int i = 0; i < size; i++) {
                System.out.print((i + 1) + " ");
            }
        } else { // 当歌曲列表大于4的时候,计算歌曲列表并打印
            for (int i = 0; i < 4; i++) {
                System.out.print((curr - pointer + 1 + i) + " ");
            }
        }
        System.out.println();
        System.out.println(curr);
    }
}

全部评论

相关推荐

04-08 13:31
已编辑
门头沟学院 前端工程师
D0cC:京东营收1万多亿人民币,阿里9000多亿,虽然他俩利润都没腾讯和字节多,但是很恐怖了啊,负担了多少打工人的薪水
投递拼多多集团-PDD等公司10个岗位
点赞 评论 收藏
分享
吴offer选手:学到了,下次面试也放张纸在电脑上,不然老是忘记要说哪几个点
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务