题解 | #MP3光标位置#

MP3光标位置

http://www.nowcoder.com/practice/eaf5b886bd6645dd9cfb5406f3753e15

针对列表的操作,4为窗口值

while True:
    try:
        num = int(input())
        music_list = []
        for i in range(num):
            music_list.append(i + 1) #歌曲从1到num
        operate = list(input()) #所有的操作
        if(len(music_list) <= 4): #若歌曲小于四个
            show = music_list #显示列表就是歌曲列表
            choise = 1 #当前歌曲指针
            for i in operate:
                if(i == 'U'): #向上
                    if(choise == 1):#特殊翻页
                        choise = show[-1] #指针指向最后的歌曲
                    else: #只是向上
                        choise -= 1 #指针指向前一首歌
                if(i == 'D'): #向下
                    if(choise == show[-1]): #特殊翻页
                        choise = show[0]
                    else: #只是向下
                        choise += 1 #指向下一首歌曲
        else:
            show = music_list[:4] #初始化show,歌曲列表的前四首歌曲
            choise = 1 #初始化指针
            for i in operate:
                if(i == 'U'): #向上
                    if(choise == 1): #特殊翻页
                        choise = music_list[-1] #只想最后一首歌曲
                        show = music_list[-4:] #展示列表展示最后四首歌曲
                    elif(choise == show[0]) and (choise != 1): #一般翻页
                        choise -= 1 #光标指向当前的上一首歌
                        show = music_list[choise - 1:choise + 3] #显示列表更新,比如:3456更新为2345
                    else: #只是向上
                        choise -= 1
                if(i == 'D'): #向下
                    if(choise == music_list[-1]): #特殊翻页
                        choise = music_list[0] #指向第一首歌
                        show = music_list[:4] #显示前四首歌
                    elif(choise == show[-1]) and (choise != music_list[-1]): #一般翻页
                        choise += 1 #光标向下一首歌
                        show = music_list[choise - 4 :choise] #更新显示列表,2345更新为3456
                    else: #只是向下
                        choise += 1
        print(*show) #输出显示列表
        print(choise) #输出当前光标
    except:
        break
华为机试题解(prod.by kedao) 文章被收录于专栏

华为实习机试题解

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-07 13:35
虽然不怎么光彩,经过这件事,可能我真的要去认同“面试八股文早该淘汰!不会用AI作弊的程序员=新时代文盲!”这句话了
HellowordX:Ai的出现是解放劳动力的,不是用来破坏公平竞争环境的,这样下去,轻则取消所有线上面试,严重了会影响整个行业对所有人产生影响,企业会拉高入职考核各种离谱考核会层出不穷
你找工作的时候用AI吗?
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-10 12:05
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务