题解 | #MP3光标位置#

MP3光标位置

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

n = int(input())
s = input()
#当歌曲数目小于4时,当前页的包含的歌曲序号就为0到t-1。
t = n if n < 4 else 4
#page1代表当前页的起始下标,page2是结束下标。初始页包含0到t-1序号的歌曲
page1 = 0
page2 = t-1
#pre为当前光标所指歌曲的序号,初始为0
pre = 0
for i in s:
    if i == 'U':
        pre -= 1
        #代表页跳转到底部
        if pre < 0:
            pre = n-1
            page1 = n-t
            page2 = n-1
        #光标指示的歌曲序号,不在当前页,则当前页整体上移。当光标所指歌曲在当前页中,页不需要变动
        elif pre < page1:
            page1 -= 1
            page2 -= 1
    else:
        pre += 1
        if pre == n:
            pre = 0
            page1 = 0
            page2 = t-1
        elif pre  > page2:
            page1 += 1
            page2 += 1
page = [str(i) for i in range(page1+1,page2+2)]
print(' '.join(page))
print(pre+1)

#原始一点点的解法#
原始一点点的解法 文章被收录于专栏

尽量不借助面向对象的思想,自己去实习具体过程

全部评论

相关推荐

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