题解 | #MP3光标位置#
MP3光标位置
https://www.nowcoder.com/practice/eaf5b886bd6645dd9cfb5406f3753e15
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); while (in.hasNext()) { int num=in.nextInt();//歌曲总数 String opStr=in.next();//操作指令 int songNow=1;//初始歌曲 int positionNow=1;//初始位置 for(int i=0;i<opStr.length();i++){ //遍历操作指令字符串 if(opStr.charAt(i)=='U'){ if(positionNow==1 && songNow==1){//当是第一行第一首时 songNow=num; if(num<4){//如果总歌曲小于4,当前位置的值应为歌曲总数目 positionNow=num; continue; } positionNow=4;//如果不小于4则位置为4,当前歌曲为最后一首 }else if(songNow!=1 && positionNow==1){ songNow--;//如果在第一行,但不是第一首 }else { positionNow--;//不是第一行且不是第一首 songNow--; } } //向上操作和向下类似,总曲目小于4时,进行下翻操作的最下位置为num else if(opStr.charAt(i)=='D'){ if((positionNow==4|positionNow==num) && songNow==num){ positionNow=1; songNow=1; }else if((positionNow==4|positionNow==num) && songNow!=num){ songNow++; }else{ positionNow++; songNow++; } } } for(int count=0;count<Math.min(4,num);count++){ System.out.print(songNow-positionNow+1+count+" "); } System.out.println(); System.out.println(songNow); } } }