题解 | #MP3光标位置#
MP3光标位置
https://www.nowcoder.com/practice/eaf5b886bd6645dd9cfb5406f3753e15
#mp3换页
while True:
try:
a = int(input())#歌曲数目
b = input()#操作U,D向上,向下
p = 1#设置一个指针初始值为1,也即初始状态默认选择第一首歌曲
org = []#存储所有歌曲
for i in range(1, a + 1):
org.append(i)
lis = org[0:4]#存储初始页歌曲(第一页歌曲),每页四首歌曲
if a <= 4:#歌曲数小于等于4时,只有一页
for i in b:
if i == 'U':
if p == 1:
p = a
else:
p = p - 1
elif i == 'D':
if p == 4:
p = 1
else:
p = p + 1
else:
print('只能输入U,D!!')
else:#歌曲数大于4,多页操作
for i in b:#计算操作次数
if i == 'U':#操作方式(U向上选择)
if p == 1:#p=1为初始状态,向上操作一次,直接翻到最后一页,同时选择最后一首歌曲
lis = org[a - 4:a+1]#切换为最后一页
p = a#选择最后一首歌曲
else:#不在初始位置向上操作一次,则指针上移,p减1
p = p - 1
if p == lis[0]-1:#当指针在当前页的第一首歌曲时,如果继续上移一次,则页面一次向上切换一次
lis = list(map(lambda x: x - 1, lis))
elif i == 'D':#与U同理,差异不大
if p == a:
lis = org[0:4]
p = 1
else:
p = p + 1
if p == lis[3]+1:
lis = list(map(lambda x: x + 1, lis))
for i in lis:
print(i,end=' ')
print()
print(p)
except:
break