【python练习题 03】高矮个子排队

2023-10-26

题目
现在有一队小朋友,他们高矮不同,我们以正整数数组表示这一队小朋友的身高,如数组{5,3,1,2,3}。

我们现在希望小朋友排队,以“高”“矮”“高”“矮”顺序排列,每一个“高”位置的小朋友要比相邻的位置高或者相等;每一个“矮”位置的小朋友要比相邻的位置矮或者相等;

要求小朋友们移动的距离和最小,第一个从“高”位开始排,输出最小移动距离即可。

例如,在示范小队{5,3,1,2,3}中,{5, 1, 3, 2, 3}是排序结果。{5, 2, 3, 1, 3} 虽然也满足“高”“矮”“高”“矮”顺序排列,但小朋友们的移动距离大,所以不是最优结果。

移动距离的定义如下所示:
第二位小朋友移到第三位小朋友后面,移动距离为1,若移动到第四位小朋友后面,移动距离为2。

思路
列表分为高个子组、矮个子组,高个子组下表述是奇数,
矮个子组下标是偶数,遍历列表找对应数字

题解

ls = input().split()
ls1 = sorted(ls[1:])  # 去掉ls第一位,升序,ls1第一位是矮个子
high = []
short = []
n = (len(ls)-1) % 2
if n == 0:
    short.append(ls1[:n])
    high.append(ls1[n:])
new_ls = []  # 需要移动小朋友的身高
for i in range(len(ls1)):  # 如何保证下标是偶数?
    if ls1[i] in short and ls1[i+1] in high:
        continue
    elif ls1[i] not in short:
        new_ls.append(ls1[i])
    elif ls1[i] not in high:
        new_ls.append(ls[i])
c = new_ls[2]
new_ls[2] = new_ls[1]
new_ls[1] = new_ls[0]
new_ls = c
ls[0] + new_ls
print(ls[0]+ls1)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【python练习题 03】高矮个子排队 的相关文章

  • 如何处理重复事件中的 DST 和 TZ?

    dateutil rrule 是否支持夏令时和夏令时 需要类似于 iCalendar RRULE 的东西 如果不是 如何解决这个问题 安排重复事件和 DST 偏移量更改 Imports gt gt gt from django utils
  • 如何忽略 OpenCV python 中的内部黑色轮廓?

    在上图中 我只需要以下轮廓 8 7 0 2 4 里面每隔一个轮廓都是黑色的空盒子 有没有办法使用 cv2 RETR TREE 自动提取此类轮廓 cv2 RETR EXTERNAL 将忽略我实际需要的 2 和 4 gt gt heirarch
  • gevent 无法在 OS X Capitan 上的 python 虚拟环境中安装

    我刚刚安装了 OS X Capitan 并尝试在 python2 7 x 虚拟环境中安装 gevent 这就是我得到的 看起来像是与 gcc 有关的东西 这是回溯 Building wheels for collected packages
  • 使用 pyinstaller 在所有系统上保留字体

    我使用 tkinter 制作了一个 GUI 我用 pyinstaller 创建了 onefile exe 但设置的字体 font freesans ttf 不适用于其他计算机 我想我需要添加字体 但在与我类似的情况下 我不明白 pygame
  • 将 functools.partial 与部分参数一起使用[重复]

    这个问题在这里已经有答案了 尝试部分操作时 我观察到以下行为 首先 我定义了一个函数foo它需要 2 个非关键字参数 gt gt gt def foo salutation name print salutation name 然后 我使用
  • DJango过滤器查询集

    我是 DJango 和 DRF 的新手 并被要求管理一些 DJango DRF 相关代码 经过大量搜索后 我仍然无法找到有关 filter queryset 如何工作以及如何与不同参数一起使用的完整示例 在某些地方我看到它的用法如下 sel
  • 如何创建 tox.ini 变量

    有没有办法在 tox ini 中设置任意变量 一个示例是可以多种方式使用的项目名称 对于相当复杂的 tox ini 我发现自己复制并粘贴到了我只需要在顶部设置一个变量的地方 作为参考 tox ini 示例 tox envlist clean
  • 模块“tensorflow._api.v2.train”没有属性“GradientDescentOptimizer”

    我使用Python 3 7 3并安装了tensorflow 2 0 0 alpha0 但是存在一些问题 例如 模块 tensorflow api v2 train 没有属性 GradientDescentOptimizer 这是我的全部代码
  • python pandas 对列的操作

    您好 我想知道使用 pandas 对 python 中的列进行操作的最佳方法 我有一个经典数据库 我已将其作为数据框加载 并且我经常必须对每一行进行操作 如果标记为 A 的列中的值大于x 则用列 C 减去列 替换该值 D 现在我做类似的事情
  • Scorer函数:make_scorer/score_func和的区别

    在 scikit 0 18 1 文档中 我发现接下来的内容有点令人困惑 似乎可以通过多种方式编写自己的评分函数 但有什么区别呢 网格搜索简历 http scikit learn org stable modules generated sk
  • 解析维基百科的出生和死亡日期?

    我正在尝试编写一个 python 程序 可以在维基百科中搜索人们的出生和死亡日期 例如 阿尔伯特 爱因斯坦出生于 1879 年 3 月 14 日 逝世日期 1955 年 4 月 18 日 我开始于使用 Python 获取维基百科文章 htt
  • Tkinter - 窗口焦点丢失事件

    是否有事件触发tkinter窗口失去可以绑定到的焦点tkinter窗口使用 bind method 您正在寻找的活动是
  • Postgres - python 多个 SSL 连接

    我在使用 psycopg2 和 SSL 建立两个并发 Postgres 数据库连接 一个到主数据库 一个到从数据库 时遇到问题 两个连接分别工作 即 import psycopg2 dsnMaster dbname sslcert path
  • Python 3 中的 FastCGI WSGI 库?

    对于 Python 3 是否存在可以将 WSGI 应用程序用作 FastCGI 服务器的库 这样 nginx 就可以将请求代理给它了 Python 3 文档 https docs python org 3 howto webservers
  • 如何使用 mechanize 获取生成的验证码图像

    我正在尝试使用 python 和 mechanize 从我的移动提供商网站发送短信 问题是表单有验证码图像 使用 mechanize 我可以获取图像的链接 但每次访问该链接时它都是不同的 有什么办法可以从 mechanize 获得准确的图片
  • gzip.open().read() 的大小参数

    当与gzipPython 中的库 我经常遇到使用 read 函数的模式如下所示 with gzip open filename as bytestream bytestream read 16 buf bytestream read IMA
  • Django 应用程序不从 AWS 存储桶的媒体文件夹加载图像

    我在用着django oscar 并希望使用 AWS S3 提供我的静态文件 为了配置我的 s3 存储桶 我创建了一个名为的模块aws with conf py and utils py files 在我的网站上 当我将图像上传到产品时 它
  • Python 中的基本转换器

    我正在编写一个程序 用于在 Python 中将任何基数转换为基数 10 该程序的代码如下所示 print Enter the number you want to convert to base 10 number input length
  • 将具有开始 - 结束的行转换为具有 TimeIndex 的数据帧的性能问题

    我有一个大型数据集 其中每行代表某个时间间隔 开始和结束之间 的某种类型 认为是传感器 的值 它看起来像这样 start end type value 2015 01 01 2015 01 05 1 3 2015 01 06 2015 01
  • 将 UTF-16 转换为 UTF-8 并删除 BOM?

    我们有一位数据输入人员在 Windows 上使用 UTF 16 编码 希望使用 utf 8 并删除 BOM utf 8 转换有效 但 BOM 仍然存在 我该如何删除这个 这就是我目前所拥有的 batch 3 src Users jt src

随机推荐

  • CentOS8安装mysql8.0.24

    记录一下CentOS8安装mysql的过程 CentOS系统版本为CentOS Linux release 8 1 1911 安装的mysql版本为8 0 24 一 下载mysql安装包并解压 执行以下命令 创建mysql安装目录 mkdi
  • WebSocket的基本使用

    目录 为何使用websocket 1 后端搭建 2 搭建webSocket前后分离 1 配置跨域过滤器与初始化websocket 2 定义websocket服务 3 定义控制器进行测试webSocket向前端发送消息 2 前端准备 3 进行
  • 如何从gitee上拉项目?

    目录 第一步 下载git软件 第二步 一直下一步 傻瓜式安装 第三部 使用 新建一个文件夹 2 右击 打开命令窗口 3 复制项目下载url 4 命令窗口输入这样一串命令 第一步 下载git软件 CNPM Binaries Mirror np
  • spring-boot是否还和spring mvc一样存在父子容器

    文章目录 一 spring boot在自动集成了spring springmvc后是否在有父子容器之分 1 看下spring boot run方法 2 为什么spring mvc弄了一个父子容器 二 spring mvc中父子容器初始化过程
  • @Autowired 和 @Resource 的区别

    Autowired 和 Resource 的区别 区别 Autowired Resource 区别 区别1 Autowired 是spring提供的注解 Resource 是JDK提供的注解 区别2 Autowired 默认的注入方式是By
  • 第三十章、containers容器类部件QMdiArea多文档界面部件功能介绍及开发应用

    专栏 Python基础教程目录 专栏 使用PyQt开发图形界面Python应用 专栏 PyQt入门学习 老猿Python博文目录 一 引言 老猿在前期学习PyQt相关知识时 对每个组件的属性及方法都研究得很透彻 并将学习的感悟都写成了博文
  • linux中jdk安装/java环境安装

    第一步首先下载java jdk jdk 8u144 linux x64链接 https pan baidu com s 1uvSB 7JP037AdZJPDdGF6A 提取码 mdat 然后使用工具将文件传输到linux上 然后将tar g
  • 在树莓派中安装ROS系统(Kinetic)

    在树莓派中安装ROS系统 重新梳理了一下树莓派的安装流程 现在我们来开始吧 打开官网教程 http wiki ros org kinetic step1 安装源 中国 sudo sh c etc lsb release echo deb h
  • 物联网+区块链溯源方案

    物联网硬件 蓝牙 wifi 加区块链的方式可有效对现实世界中的实例进行链上映射 本文介绍一种基于硬件的轮胎区块链防伪溯源以及渠道管控的方案思路 更多区块链技术与应用分类 区块链应用 区块链开发 以太坊 Fabric BCOS 密码技术 共识
  • 服务器搭建系列之7:k8s安装postgresql数据库,2022最新版本

    Dockerfile FROM postgres EXPOSE 5432 deploy yaml 命名空间 apiVersion v1 kind Namespace metadata name fandai apiVersion apps
  • Maven安装与配置,Eclipse配置Maven【图文并茂的保姆级教程】

    Welcome Huihui s Code World 接下来看看由辉辉所写的关于Maven的相关操作吧 目录 Welcome Huihui s Code World 一 Maven是什么 二 Maven的下载 辉辉小贴士 maven中各个
  • Svm实现多分类

    机器学习 Svm实现多分类详解 Svm实现多类分类原理 代码实现 训练的图片 Svm实现多类分类原理 1 支持向量机分类算法最初只用于解决二分类问题 缺乏处理多分类问题的能力 后来随着需求的变化 需要svm处理多分类分为 目前构造多分类支持
  • 各种音视频编解码学习详解(11)--Flash Video系列

    用于在 Flash 中压缩视频 FLV流媒体格式是一种新的视频格式 它的出现有效地解决了视频文件导入Flash后 使导出的SWF文件体积庞大 不能在网络上有效使用等 缺点 一般FLV文件包在SWF PLAYER 的壳里 并且FLV可以很好的
  • Linux Memcached 安装

    1 Linux系统安装memcached 首先要先安装libevent库 memcache依赖于libevent 必须先安装 自动下载安装方式 也可使用源码安装方式 yum install libevent devel yum instal
  • 陪我到可可西里看一看海,不要未来,只要你来。——大冰 《陪我到可可西里去看海》

    陪我到可可西里看一看海 不要未来 只要你来 大冰 陪我到可可西里去看海
  • 斐波那契查找详细注解版

    对于斐波那契数列 1 1 2 3 5 8 13 21 34 55 89 也可以从0开始 前后两个数字的比值随着数列的增加 越来越接近黄金比值0 618 比如这里的89 把它想象成整个有序表的元素个数 而89是由前面的两个斐波那契数34和55
  • Python中RotatingFileHandler、TimedRotatingFileHandler函数用法

    欢迎来到我的博客 作者 秋无之地 简介 CSDN爬虫 后端 大数据领域创作者 目前从事python爬虫 后端和大数据等相关工作 主要擅长领域有 爬虫 后端 大数据开发 数据分析等 欢迎小伙伴们点赞 收藏 留言 背景 在python开发过程中
  • Linux如何卸载软件

    Linux系统可以通过终端 Terminal 或图形界面 GUI 来卸载软件 终端方式可以使用apt get Ubuntu 或yum CentOS 命令来实现 而图形界面方式可以使用系统自带的软件管理器来实现 比如Ubuntu的Ubuntu
  • libev学习系列之二:libev下载

    libev学习系列之二 libev下载 版本说明 版本 作者 日期 备注 0 1 ZY 2019 5 31 初稿 目录 文章目录 libev学习系列之二 libev下载 版本说明 目录 官网 GitHub 我的某度网盘 官网 可以去官网下载
  • 【python练习题 03】高矮个子排队

    题目 现在有一队小朋友 他们高矮不同 我们以正整数数组表示这一队小朋友的身高 如数组 5 3 1 2 3 我们现在希望小朋友排队 以 高 矮 高 矮 顺序排列 每一个 高 位置的小朋友要比相邻的位置高或者相等 每一个 矮 位置的小朋友要比相