显示界面 | HJ64 MP3光标位置

SHOW_LINES = 4
while True:
    try:
        n = int(input())
        coms = input()
        if n < SHOW_LINES:  # 歌曲数目小于4时,显示行数以实际歌曲数目为准
            SHOW_LINES = n
        c, f = 1, SHOW_LINES  # ceiling, floor分别表示所显示最上面和最下面的行号
        cur = 1  # 光标位置
        for com in coms:
            if com == 'U':
                cur -= 1
            elif com == 'D':
                cur += 1
            if cur < c:  # 光标位置在ceiling以上,需修改ceiling与floor
                if c != 1:
                    c -= 1
                    f -= 1
                    cur = c
                else:  # 翻页,需修改ceiling与floor,并更新光标位置
                    c = n - SHOW_LINES + 1
                    f = n
                    cur = f
            elif cur > f:
                if f != n:
                    f += 1
                    c += 1
                    cur = f
                else:
                    d = 1 + SHOW_LINES -1
                    c = 1
                    cur = c
        for i in range(c, f+1):
            print(i, end=' ')
        print()
        print(cur)
    except:
        break

用时:30min

华为笔试刷题 文章被收录于专栏

高质量题: 1~40:HJ16,HJ22,HJ24,HJ26,HJ27,HJ28,HJ35,HJ37,HJ39; 40~80:HJ41,HJ42,HJ43,HJ44,HJ48,HJ50,HJ52,HJ53,HJ57,HJ61,HJ63,HJ64,HJ70,HJ71,HJ74,HJ77; 80~108:HJ82,HJ85,HJ88,HJ89,HJ93,HJ95,HJ98,HJ103,HJ107

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务