第十一届蓝桥杯python组第二场省赛-排序

2023-05-16

1. 问题描述:

小蓝最近学习了一些排序算法,其中冒泡排序让他印象深刻。 在冒泡排序中,每次只能交换相邻的两个元素。小蓝发现,如果对一个字符串中的字符排序,只允许交换相邻的两个字符, 则在所有可能的排序方案中,冒泡排序的总交换次数是最少的。例如,对于字符串 lan 排序,只需要 1 次交换。对于字符串 qiao 排序, 总共需要 4 次交换。小蓝找到了很多字符串试图排序,他恰巧碰到一个字符串,需要 100 次交换,可是他忘了吧这个字符串记下来,现在找不到了。请帮助小蓝找一个只包含小写英文字母且没有字母重复出现的字符串,对该串的字符排序,正好需要 100 次交换。如果可能找到多个,请告诉小蓝最短的那个。如果最短的仍然有多个,请告诉小蓝字典序最小的那个。请注意字符串中不可以包含相同的字符。

【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个只包含小写英文字母的字符串,在提交答案时只填写这个字符串,填写多余的内容将无法得分。

2. 思路分析:

因为是需要尽可能使用较短长度的字符串来构成100次的相邻字符的交换,并且要求字典序是最小的而且只能交换相邻的字母,所以我们需要使用尽可能使用排列在前面的字符,并且使用逆序排列,考虑完全逆序的情况这样才可以使得字符串的交换次数尽可能多也就是字符串最短,那么需要长度为15的完全逆序的字符串,因为完全逆序交换的次数为:1 + 2 + ... 14  = 105,所以剩下的我们就需要在完全逆序的字符串:"onmlkjihgfedcba"进行调整使其构成能够使用100次的相邻字母的字符串,105次只比100次多了5次,所以我们需要将其中多余的5次消除掉,分析字符串的特点可以知道后面字典序较大的字符往前调整,位于其前面的字符串的相对位置是不变的,所以我们需要在逆序的"onmlkjihgfedcba"字符串第6个字母放到最前面,这样当排列好了"abcdefghi"之后j就位于其后面,这样字母j这个位置是不用调整的,所以恰好消除了多余的5次,最后交换的次数为 14 + 13 + ... + 6 + 4 + 3 + 2 + 1 = 100次。所以结果为:jonmlkihgfedcba。主要还是找出其中的规律,先考虑极端的情况再进行调整

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

第十一届蓝桥杯python组第二场省赛-排序 的相关文章

  • Selenium:上传、下载文件

    Selenium 上传 下载文件 1 上传文件是比较常见的Web功能之一 比如 常见的上传头像功能 2 对于Web页面的上传功能实现一般有以下两种方式 nbsp nbsp nbsp 普通上传 普通的附件上传是将本地文件的路径作为作为一个值放
  • Python:类的__dict__属性

    Python中类的 dict 属性 1 Python中一切皆对象 nbsp nbsp nbsp 不管是内置的数据类型 内置函数 内置类 第三方类 还是自定义类都叫做对象 nbsp nbsp nbsp 一个对象就会有自己的方法或属性 只是说有
  • Python:处理XML文件汇总

    处理XML文件汇总 1 前面介绍了使用Python中的ElementTree库来解析 创建XML文件 nbsp nbsp nbsp 如果对这个库不了解的可以先去看看这个库 nbsp nbsp nbsp 地址 https mouse blog
  • Python:json数据与Python对象之间的转换

    json数据与Python对象之间的转换 1 前面介绍了在Python中如何处理json数据 主要使用了以下几个方法 nbsp nbsp nbsp dumps 将Python对象转换为JSON格式的字符串 nbsp nbsp nbsp du
  • 用结构体指针访问结构体中的结构体指针(结构体指针的嵌套)

    结构体中的结构体指针是使用 一 问题背景二 代码三 说明 一 问题背景 日常工作中没有编程的机会 xff0c 所以只看得懂代码 xff0c 现在需要重新写一段代码 xff0c 实现固定格式存储数据 xff0c 需要使用到结构体和结构体指针
  • MOOC —— Python语言基础与应用 by 北京大学 第五章 计算和控制流(一)

    第五章 计算和控制流 xff08 一 xff09 23 自动计算过程24 控制流程25 条件分支语句26 条件循环27 迭代循环28 上机练习 基本的计算程序测验题 23 自动计算过程 简单介绍了 冯 诺依曼结构计算机 xff0c 五大部件
  • 关于sort函数中的cmp参数的笔记(C++)

    C 43 43 中sort函数是经常会用到的一个函数 xff0c 主要的功能是排序 xff0c 可以给数组 xff0c 或者链表list 向量排序 sort first pointer first pointer 43 n cmp 在三个参
  • 16进制转10进制方法(初级)

    目标 xff1a 输入16进制字符串 xff0c 输出对应10进制数字 以下以一个题目给出方法 xff1b span class token comment span span class token comment coding in 2
  • 图像格式RGB与BGR互转

    在opencv中 xff0c 读取后图像的格式为BGR的 与其它的读取图像方式不同 xff0c 需要进行转换 基于python的切片特性 xff0c 可以快速进行转换 BGR to RGB opencv 转 常规img im 61 im 1
  • 深度学习框架Pytorch——学习笔记(九) 基础知识补充

    由于基础知识不牢固 xff0c 又学习了一下其他入门学习资料 pytorch中文手册 https github com zergtant pytorch handbook 入门基础补充 相比之前学过的东西 xff0c 一些常用的东西做了下补
  • 深度学习-CV基础知识笔记

    CNN卷积神经网络相关 分类 xff0c backbone LeNet 卷积神经网络的里程碑 由2个卷积层 2个池化层和2个全连接层组成 xff0c 卷积核大小是5 5 xff0c 池化层大小为2 2 xff0c 最后通过softmax输出
  • 目标检测基础算法框架代表

    目前的目标检测可以分为 单阶段 one stage xff0c 双阶段 two stage xff0c anchor free 三个方向 还有一个最近杀的比较疯的Transformer 还属于探索阶段 目前前沿检测框架是基础算法框架的衍生
  • Django 学习笔记 (二)dwebsocket

    dwebsocket 一次连接 xff0c 就可以直接发送 xff0c 不需要多次请求 安装 通过pip安装有问题 可直接下载git版 xff0c 将websocket文件复制到项目中 使用代码解释 django中 服务端 独立url数据通
  • 深度学习框架Pytorch——学习笔记(一)基础认识和实践

    深度学习框架Pytorch 学习笔记 xff08 一 xff09 记录在学习过程中 xff0c 学到的东西和遇到的问题 1 什么是Pytorch xff0c 为什么选择Pytroch xff1f pytorch是深度学习框架 xff0c 是
  • 深度学习框架Pytorch——学习笔记(四)逻辑回归

    深度学习框架Pytorch 学习笔记 xff08 四 逻辑回归 在上一个线性回归的基础上进行实现逻辑回归 逻辑回归中用到了sigmoid函数 可以理解为将结果值转为概率问题 0 1 之间 xff0c 逻辑回归实际上就是一个二分类了 将结果分
  • 深度学习框架Pytorch——学习笔记(六)PyTorch实现L1,L2正则化以及Dropout

    深度学习框架Pytorch 学习笔记 xff08 六 PyTorch实现L1 xff0c L2正则化以及Dropout 什么是过拟合 xff1f 过拟合的表现就是在训练过程中 xff0c loss越来越低 xff0c 但在测试集上测试发现效
  • debian源配置

    说明 xff1a 在没有接入网络的情况下 xff0c 采用最小话方式安装debian xff0c 默认是没有配置apt get源 没有安装远程管理服务SSH的 xff0c 这个时候是无法使用apt get install 在线安装软件的 x
  • 深度学习框架Pytorch——学习笔记(七)常用损失函数和神经网络优化方法,激活函数简述

    深度学习框架Pytorch 学习笔记 七 常用损失函数和神经网络优化方法 xff0c 激活函数简述 优化方法参考地址 https www leiphone com news 201706 e0PuNeEzaXWsMPZX html 网络的可
  • Ubuntu更新报错: 无法下载 http://cn.mirrors.ustc.edu.cn/ubuntu/dists/bionic/InRelease 连接失败BUNTU

    Ubuntu执行apt get update报错 xff1a 解决方案 xff1a xff08 1 xff09 这是因为ubuntu的服务器在国外 xff0c 使用国内的软件源在软件下载速度方面相对比较快 输入 xff1a 以下命令 cd
  • window10下的VS2019环境变量配置教程

    经过四天的吐血安装 xff0c 终于环境配置成功了 这么艰难的历程我一定要好好记录下来 xff0c 帮助后面的小可爱们 为什么标题要说是vs2019环境配置 xff0c 因为我刚开始前前后后安装了四五次都没有找到 xff1a c windo

随机推荐