题解 | #MP3光标位置#

MP3光标位置

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

'''
这题俺用的想法可能比较笨,纯条件语句_(¦3」∠)_,但一定是最清楚的
------
1    |
------
2    |
------
3    |->上框位置sk
------
4    |->光标位置gb
------
5    |
------
6    |->下框位置xk
------
7    |
------
8    |
------
'''
music_lt=[]# 创建音乐曲目列表
for i in range(1,int(input())+1):
    music_lt.append(i)
sk=0# 上框位置
if len(music_lt)>4:
    xk=3# 下框位置
elif len(music_lt)<=4:
    xk=len(music_lt)-1# 下框位置
gb=0# 光标位置

def ud1(w,s,x,g):# 曲目列表小于等于4时,只需改变光标位置,执行函数ud1
    if w=='U':
        if s<g<=x:
            g=g-1
        elif g==0:
            g=len(music_lt)-1
    elif w=='D':
        if s<=g<x:
            g=g+1
        elif g==len(music_lt)-1:
            g=0
    return s,x,g

def ud2(w,s,x,g):## 曲目列表大于4时,上框、下框、光标均可能改变执行函数ud2
    if w=='U':# 向上
        if s<g<=x:# 光标未到上框位置
            g=g-1
        elif g==s:# 光标到上框位置
            if g==0 and s==0:# 若是曲目列表顶端
                g=len(music_lt)-1
                s=len(music_lt)-4
                x=len(music_lt)-1
            else:# 若不是曲目列表顶端
                s=s-1
                g=g-1
                x=x-1
    elif w=='D':# 向下
        if s<=g<x:# 光标未到下框位置
            g=g+1
        elif g==x:# 光标到下框位置
            if g==len(music_lt)-1 and x==len(music_lt)-1:# 若是曲目列表底端
                g=0
                s=0
                x=3
            else:# 若不是曲目列表底端
                s=s+1
                g=g+1
                x=x+1
    return s,x,g

cz=input()# 操作的字符串
if len(music_lt)<=4:# 曲目列表小于等于4时
    for word in cz:
        sk,xk,gb=ud1(word, sk, xk, gb)
else:# 曲目列表大于4时
    for word in cz:
        sk,xk,gb=ud2(word, sk, xk, gb)

lt=[]
for k in music_lt[sk:xk+1]:
    lt.append(str(k))
print(' '.join(lt))# 输出当前列表

print(music_lt[gb])# 输出当前选中歌曲
    

【牛客站内】华为机试题练习记录

全部评论

相关推荐

01-24 04:44
门头沟学院 Java
数学转码崽:项目感觉有点简单,再加上学历不是92的话,大厂实习很难过筛吧,即使给几个面试,感觉也通过不了,还是放低预期,先去中厂沉淀吧,暑期实习可以试着冲大厂,如果非大厂不去的话,不如去考研,双非学历真的硬伤
点赞 评论 收藏
分享
生命诚可贵:先不说内容怎么样 排版就已经太差劲了 第一眼看不到重点,第二眼已经没有再看的耐心了, 篇幅占的太满了 字体不要用灰色 观感不好 想重点突出的黑色加粗就可以了 多列要点 少些大段的句子 项目经历把项目用的技术要点列出来,光写个python plc什么的太宽泛了 自我评价也有点偏多
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务