题解 | #MP3光标位置#

MP3光标位置

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

max_idx = int(input())
actions = input()
pointer = 0
if max_idx > 3:
    queue = [i + 1 for i in range(4)]
else:
    queue = [i + 1 for i in range(max_idx)]


def up():
    global pointer
    global queue
    if max_idx < 4:
        if pointer == 0:
            pointer = len(queue) - 1
        else:
            pointer -= 1
    else:
        if pointer == 0:
            # wrapped back to end
            if queue[0] == 1:
                queue = [i for i in range(max_idx - 3, max_idx + 1)]
                pointer = 3
            else:
                queue.pop()
                queue = [queue[0] - 1] + queue
        else:
            pointer -= 1


def down():
    global pointer
    global queue
    if max_idx < 4:
        if pointer == len(queue) - 1:
            pointer = 0
        else:
            pointer += 1
    else:
        if pointer == 3:
            # wrapped back to front
            if queue[-1] == max_idx:
                queue = [i + 1 for i in range(4)]
                pointer = 0
            else:
                queue.append(queue[-1] + 1)
                queue.pop(0)
        else:
            pointer += 1


for action in actions:
    if action == "U":
        up()
    elif action == "D":
        down()


print(" ".join([str(i) for i in queue]))
print(queue[pointer])

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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