题解 | #MP3光标位置#

MP3光标位置

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

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        char[]ops = in.next().toCharArray();
        int left = 0, right = Math.min(3, n-1), pointer = 0;
        int[]arr = new int[n];
        for (int i = 1; i <= arr.length; i++) {
            arr[i - 1] = i;
        }
        for (char op : ops) {
            if(arr.length<=4) {
                pointer = (pointer + (op=='U'?-1:1)) % arr.length;
                continue;
            }
            if (op == 'U') {
                if (pointer == 0) {
                    pointer = arr.length - 1;
                    left = arr.length - 4;
                    right = arr.length - 1;
                } else {
                    if (pointer == left) {
                        left--;
                        right--;
                    }
                    pointer--;
                }
            } else if (op == 'D') {
                if (pointer == arr.length - 1) {
                    pointer = 0;
                    left = 0 ;
                    right = 3;
                }  else {
                    if (pointer == right) {
                        left++;
                        right++;
                    }
                    pointer++;
                }
            }
        }
        for (int i = left; i <= right; i++) {
            System.out.print(arr[i] + ((i<right)?" ":""));
        }
        System.out.println("\n" + arr[pointer]);

    }
}

全部评论

相关推荐

路过的咸蛋超人也想拿offer:你是我见过最美的牛客女孩
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务