题解 | #MP3光标位置# 少于四首歌的情况好容易漏啊

MP3光标位置

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

n = int(input())
order = list(input())

#分成两部分
#计算当前歌曲 这个相当于一个取余循环  记录总的操作数取余就行了
#计算当前光标是在第几行[1,2,3,4]
#初始是1 D [1,2,3]->[2,3,4]  4位置翻页不翻页根据当前歌曲num == n讨论一下

num_p = 0
# index  0 1 2 3 4  ... n-1  -1=> n-1
# value  1 2 3 4 5  ... n
# num = (num_p+n) % n + 1
local_p = 1
#1 2 3 4

for od in order:
    if od == 'D':
        num = (num_p+n) % n + 1

        num_p += 1

        if local_p in [1, 2, 3]:
            local_p = local_p+1
        elif local_p == 4:
            # 到底翻页
            local_p = 1 if num == n else 4

    else:
        num = (num_p+n) % n + 1

        num_p -= 1

        if local_p in [2, 3, 4]:
            local_p = local_p-1
        elif local_p == 1:
            # 到顶翻页
            local_p = 4 if num == 1 else 1



num = (num_p+n) % n + 1
left = local_p - 1
right = 4 - local_p
list_out = [i for i in range(num-left, num+right+1)] if n>=4 else [i+1 for i in range(n)]


print(" ".join([str(i) for i in list_out]))
print(num)

全部评论

相关推荐

06-23 11:43
门头沟学院 Java
allin校招的烤冷面很爱看电影:我靠,今天中午我也是这个hr隔一个星期发消息给我。问的问题还是一模一样的😅
点赞 评论 收藏
分享
野猪不是猪🐗:我assume that你must技术aspect是solid的,temperament也挺good的,however面试不太serious,generally会feel style上不够sharp
点赞 评论 收藏
分享
06-27 12:30
延安大学 C++
实习+外包,这两个公司底层融为一体了,如何评价呢?
一表renzha:之前面了一家外包的大模型,基本上都能答出来,那面试官感觉还没我懂,然后把我挂了,我都还没嫌弃他是外包,他把我挂了……
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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