题解 | #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]); } }