题解 | #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);
}
}
}
巨人网络成长空间 50人发布
查看7道真题和解析