显示界面 | 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

全部评论

相关推荐

09-13 14:38
已编辑
广西大学 Java
何青司:第一个项目感觉可以写好多东西,但只是简单的罗列技术和功能,我看到一种推荐写法是使用xxx实现(或解决)xxx功能(或问题)。再可以添加一些数据,例如实习经历你写到输出相关报告,前面也提到了文档撰写,可以加上数量,数量少则可以写“梳理出8000字文档资料”。查询数据库优化和缓存策略也可以加上数据对比,我的简历就写有一条“使用Redis缓存首页用户信息列表,将接口响应时长从4.5秒优化到47毫秒左右”,数据对比就凸显出缓存的重要性了。以上只是我的一点拙见。
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务