题解 | #MP3光标位置#
MP3光标位置
https://www.nowcoder.com/practice/eaf5b886bd6645dd9cfb5406f3753e15?tpId=37&tags=&title=&difficulty=0&judgeStatus=0&rp=1&sourceUrl=%2Fexam%2Foj%2Fta%3Fpage%3D2%26pageSize%3D50%26search%3D%26tpId%3D37%26type%3D37
最简单明了,屏显数可配置
import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); // 注意 hasNext 和 hasNextLine 的区别 while (in.hasNext()) { // 注意 while 处理多个 case int num = in.nextInt(); String temp = in.nextLine(); String ud = in.nextLine(); int showNum =4;//后期可配置 int p = 1;//光标位置 int p1 =1,p2 =Math.min(p1+showNum-1,num);//屏幕显示首末歌曲 //int music = p1+p-1;//当前选中歌曲 //int music = (p2-showNum>0?p2-showNum:0)+p;//当前选中歌曲 for(int i =0;i<ud.length();i++){ switch(ud.charAt(i)){ case 'U' : if(p>1){ p--; }else{ if(p1>1){ p1--; p2--; }else{ p1 = num-showNum>=0 ? num-showNum+1:1; p2 = num; p = Math.min(num,showNum); } } break; case 'D': if(p<showNum){ p++; }else{ if(p2<num){ p1++; p2++; }else{ p1 = 1; p2 = num-showNum>=0 ? showNum:num; p = 1; } } break; } } for(int i=0;i<Math.min(num,showNum);i++){ System.out.print((p1+i) + " "); } System.out.println(); System.out.println((p2-showNum>0?p2-showNum:0)+p); } } }