一、题目
二、示例
三、代码
while True:
try:
n = int(input())
str1 = input()
temp = 1
if n <= 4:
for i in str1:
if i == 'U':
temp -= 1
if temp < 1:
temp = n
if i == 'D':
temp += 1
if temp > n:
temp = 1
print(' '.join(map(str, list(range(1,n+1)))))
print(temp)
else:
temp = 1
sign = 1
for i in str1:
if i == 'U':
if temp == 1:
temp = n
sign = n-3
elif temp == sign:
temp -= 1
sign -= 1
else:
temp -= 1
if i == 'D':
if temp == n:
temp = 1
sign = 1
elif temp == sign + 3:
temp += 1
sign += 1
else:
temp += 1
res = []
for i in range(sign, sign+4):
res.append(str(i))
print(' '.join(res))
print(temp)
except:
break
四、算法说明
- 如果歌曲长度小于4,只需要判断当前歌曲的位置,然后输出所有的歌曲列表;
- 如果歌曲长度大于4,需要判断当前歌曲的位置
temp
,以及屏幕第一首歌曲位置sign
,根据互相之间的关系判断屏幕所显示的歌曲列表:- 如果,按Up键,当前位置是1,那么当前歌曲变为最后一首
temp = n
,屏幕显示列表进行切换,第一首歌曲变为倒数第4首,即sign = n-3
,如果当前歌曲和屏幕第一首歌曲重合temp == sign
,那么双双-1
,其他情况屏幕第一首歌曲保持不变,当前歌曲-1
;同理可编写按Down键的情况。
- 如果,按Up键,当前位置是1,那么当前歌曲变为最后一首
- 输出结果。
胡萝卜
2022年3月15日22:35:14
我不知道将去向何方,但我已在路上! |
---|
时光匆匆,虽未曾谋面,却相遇于斯,实在是莫大的缘分,感谢您的到访 ! |