题解 | #MP3光标位置#
MP3光标位置
http://www.nowcoder.com/practice/eaf5b886bd6645dd9cfb5406f3753e15
import sys # 读取所有输入行 lines = sys.stdin.readlines() # 步长设置为2,每次取两行做处理 for i in range(0, len(lines), 2): num = int(lines[i].strip()) # 获取歌曲数量 opt = lines[i + 1].strip() # 获取操作 now = 1 # 初始化光标位置 page_list = [1, 2, 3, 4] if len(opt) >= 4 else [k + 1 for k in range(num)] # 初始化当前页 for j in opt: # 光标位置判断--开始 if j == 'U': now -= 1 else: now += 1 if now <= 0: # 即判断为-1时,光标设置为结束位置 now = num else: if now == num + 1: # 即判断最后一首歌还点击下一首时,光标设置为开始位置 now = 1 # 光标位置判断--结束 # 当前页面更新--开始 if len(page_list) >= 4: # 歌曲数量大于4首时,进行当前页面更新 if now == 1: # 光标在第一首歌时,一定是1,2,3,4 page_list = [1, 2, 3, 4] elif now == num: # 光标在最后一首歌时,一定是最后四个 page_list = [i + 1 for i in range(num)][num - 4:] else: # 其他情况,如果超过当前页面的开始位置或结束位置,对整体进行平移即可 if now > page_list[-1]: page_list = [i + 1 for i in page_list] if now < page_list[0]: page_list = [i - 1 for i in page_list] # 当前页面更新--结束 print(" ".join([str(i) for i in page_list])) print(now)