当前位置: 首页 > 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中失效的图标
  • 秦洪看盘|新热点涌现,A股活力渐显
  • 瑞士成第15届北影节主宾国,6部佳作闪耀“瑞士电影周”
  • 江南大部、江淮南部等地今起有较强降雨,水利部部署防范工作
  • 累计亏损10亿元,桂林旅游怎么了?
  • 湖北一民房疑因过度采矿塌陷倒塌,镇政府:无伤亡,正在调查
  • 2025年上海版权宣传周在杨浦启动