题解 | #MP3光标位置#

MP3光标位置

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

import java.io.IOException;
import java.util.*;

public class Main {
    public static void main(String[] args) throws IOException {
        Scanner scanner = new Scanner(System.in);
        int n = Integer.parseInt(scanner.nextLine());
        char[] commands = scanner.nextLine().toCharArray();

        int top = 1;  //第一行
        int cur = 1; //当前行
        for (char command : commands) {
            switch (command) {
                case 'U':
                    if (cur == 1) { //第一个
                        cur = n; //当前到最后一行且最后一个
                        if (cur > 4) { //超长
                            top = cur - 3; //第一行为 当前-3
                        } else { //不超长,top不变
                            top = 1;
                        }
                    } else { //其他情况
                        cur--; //当前向上走一行
                        if (top > cur) { //超过第一行
                            top = cur; //重定义第一行位置
                        }
                    }
                    break;
                case 'D':
                    if (cur == n) { //最后一行
                        top = cur = 1; //回到开始
                    } else { //其他情况
                        cur++; //当前向下走一行
                        if (cur > top + 3) { //超过窗口大小,top下移
                            top++;
                        }
                    }
                    break;
            }
        }
        for (int i = top; i<=top+3&&i<=n; i++) {
            System.out.print(i+" ");
        }
        System.out.println();
        System.out.println(cur);
    }

}

全部评论

相关推荐

小浪_Coding:个人技能一条测试没有
点赞 评论 收藏
分享
用户64975461947315:这不很正常吗,2个月开实习证明,这个薪资也还算合理,深圳Java好多150不包吃不包住呢,而且也提前和你说了没有转正机会,现在贼多牛马公司骗你说毕业转正,你辛辛苦苦干了半年拿到毕业证,后面和你说没hc了😂
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务