题解 | #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);
}
}
查看17道真题和解析