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

全部评论

相关推荐

01-23 14:54
同济大学 Java
热爱敲代码的程序媛:给你提几点【专业技能】这个模块里面可优化的地方:1.【具备JVM调优经验】可以去b站上搜一下JVM调优的视频,估计一两个小时凭你的学习能力就能掌握JVM调优的实践方面的技能。2.【MySql优化】MySql这一栏,你去b站或者找个博客看看MySql优化,学一下,如果你本身比较熟悉MySql语句的话,那基本半天时间凭你的学习能力MySql语句优化方面的技能你也能掌握个差不多。以上1,2两点主要是因为我看你专业技能大部分都说的是偏理论,没有写应用。再就是最后,你结合你的项目,想一想你的项目中哪些sql语句是可以用MySql优化的,到时候你面试的时候也好结合着说一下。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务