当前位置: 首页 > news >正文

Python-24:小R的随机播放顺序

问题描述

小R有一个特殊的随机播放规则。他首先播放歌单中的第一首歌,播放后将其从歌单中移除。如果歌单中还有歌曲,则会将当前第一首歌移到最后一首。这个过程会一直重复,直到歌单中没有任何歌曲。

例如,给定歌单 [5, 3, 2, 1, 4],真实的播放顺序是 [5, 2, 4, 1, 3]

保证歌曲中的id两两不同。

代码

from collections import deque

def solution(n: int, a: list) -> list:

    assert n == len(a)

    q = deque(a)

    a = []

    for _ in range(n):

        a.append(q.popleft())

        if q:

            q.append(q.popleft())

    return a

if __name__ == '__main__':

    print(solution(n = 5, a = [5, 3, 2, 1, 4]) == [5, 2, 4, 1, 3])

    print(solution(n = 4, a = [4, 1, 3, 2]) == [4, 3, 1, 2])

    print(solution(n = 6, a = [1, 2, 3, 4, 5, 6]) == [1, 3, 5, 2, 6, 4])

相关文章:

  • [特殊字符] Prompt如何驱动大模型对本地文件实现自主变更:Cline技术深度解析
  • 【Easylive】AdminFilter 详细解析
  • postman乘法计算,变量赋值
  • 实验五 LCD1602 显示字符串
  • Craft 是什么:腾讯 Cloud Studio 中的 CodeBuddy 提供了 Craft 功能
  • 深入解析 Spring 中的 @Value 注解(含源码级剖析 + 自定义实现)
  • 工具:下载vscode .vsix扩展文件及安装的方法
  • 关于敏感文件或备份 安全配置错误 禁止通过 URL 访问 Vue 项目打包后的 .gz 压缩文件
  • 网络结构及安全科普
  • 机器学习-08-推荐算法-协同过滤
  • SQL问题分析与诊断(8)——分析方法2
  • 常用 SQL 转义符的总结
  • 【目标检测】目标检测综述 目标检测技巧
  • 利用人工智能(AI)增强IT运营,提高IT管理效率
  • 使用若依二次开发商城系统-2
  • 【sylar-webserver】重构日志系统
  • 布尔差分法解析:从逻辑导数到电路优化
  • 链式栈和线性栈
  • 服务器在国外国内用户访问慢会影响谷歌排名吗?
  • gnome中删除application中失效的图标
  • 美国经济萎缩意味着什么?关税政策如何反噬经济?
  • 铁路迎来节前出行高峰,今日全国铁路预计发送旅客1870万人次
  • 城市更新·简报│中央财政支持城市更新,倾斜超大特大城市
  • 如何反击右翼思潮、弥合社会分裂:加拿大大选镜鉴
  • 专访|200余起诉讼,特朗普上台100天,美国已进入宪政危机
  • 80后共青团云南省委副书记许思思已任迪庆州委副书记