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

全部评论

相关推荐

10-30 22:18
已编辑
毛坦厂中学 C++
点赞 评论 收藏
分享
拒绝无效加班的小师弟很中意你:求职意向没有,年龄、课程冗余信息可以删掉,需要提升项目经历。排版需要修改。
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务