题解 | #MP3光标位置#
MP3光标位置
https://www.nowcoder.com/practice/eaf5b886bd6645dd9cfb5406f3753e15
import sys
#光标移动函数
def move1(i:int,s):
if s == 'U':
return int(i-1)
elif s == 'D':
return int(i+1)
#输入
n , m = int(input()) , input()
#初始化
zuobiao = 1 #光标
ans = {1,} #用集合表示列表,方便判断光标是否在;列表中
for i in range(2,n+1):
if i > 4:
break
else:
ans.add(i)
#读取命令
for i in m:
zuobiao = move1(zuobiao,i) #移动光标
#判断光标情况
if zuobiao < 1 :
zuobiao = n
elif zuobiao > n:
zuobiao = 1
#判断光标是否在列表里
if zuobiao not in ans:
if zuobiao == 1:
ans = {1,2,3,4}
elif zuobiao == n:
ans = {n-3,n-2,n-1,n}
elif i == 'U':
ans = {zuobiao,zuobiao+1,zuobiao+2,zuobiao+3}
elif i == 'D':
ans = {zuobiao-3,zuobiao-2,zuobiao-1,zuobiao}
#输出列表和光标
ans = sorted(list(ans))
print(' '.join(map(str,ans)))
print(zuobiao)

