试题 基础练习 完美的代价

资源限制
时间限制:1.0s 内存限制:512.0MB
问题描述
  回文串,是一种特殊的字符串,它从左往右读和从右往左读是一样的。小龙龙认为回文串才是完美的。现在给你一个串,它不一定是回文的,请你计算最少的交换次数使得该串变成一个完美的回文串。
  交换的定义是:交换两个相邻的字符
  例如mamad
  第一次交换 ad : mamda
  第二次交换 md : madma
  第三次交换 ma : madam (回文!完美!)
输入格式
  第一行是一个整数N,表示接下来的字符串的长度(N <= 8000)
  第二行是一个字符串,长度为N.只包含小写字母
输出格式
  如果可能,输出最少的交换次数。
  否则输出Impossible
样例输入
5
mamad
样例输出
3
分析:

题目给的关键字是贪心算法,贪心算法关键是要找到贪心策略。对于我们这题来说,要做的事情有两件:①先判断这个字符串能不能够经过交换变成‘完美的回文字符串’,②是每一步都使用贪心策略。
判断:
对于字符串长度是偶数的字符串,每个字符的数目都是偶数,一旦出现奇数,则输出impossible。
对于字符串长度是奇数的字符串,只能有一个字符的数目是奇数,一旦出现两个,则输出impossible。
判断实现比较简单,注意减少代码复杂度(题给字符串长度范围是8000,很容易运行超

python【蓝桥杯vip练习题库】BASIC-19完美的代价(贪心算法)相关推荐

  1. python【蓝桥杯vip练习题库】ALGO-232找零钱(贪心 模拟)

    试题 算法训练 找零钱 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 有n个人正在饭堂排队买海北鸡饭.每份海北鸡饭要25元.奇怪的是,每个人手里只有一张钞票(每张钞票的面值为25. ...

  2. python【蓝桥杯vip练习题库】BASIC-5查找整数

    蓝桥杯这些题库的样例真的不咋地! 我打开输入样例发现,所有样例数组的最后面都多了一个空格,我不知为何! 用c++写的话应该不会有这种困扰,但是你有python如果不去掉末尾的空格的话,直接split, ...

  3. python【蓝桥杯vip练习题库】ALGO-90出现次数最多的整数(sys)

    试题 算法训练 出现次数最多的整数 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述 编写一个程序,读入一组整数,这组整数是按照从小到大的顺序排列的,它们的个数N也是由用户输入的,最 ...

  4. python【蓝桥杯vip练习题库】ADV-233 队列操作

    VIP到期了,今天开始暂时不更新了. 试题 算法提高 队列操作 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 队列操作题.根据输入的操作命令,操作队列(1)入队.(2)出队并输出 ...

  5. python【蓝桥杯vip练习题库】ADV-350珠心算测验

    试题 算法提高 珠心算测验 资源限制 时间限制:1.0s 内存限制:256.0MB python中的for循环和c中的不一样,不如c灵活,但是可以用while实现. 既: i=0 while i< ...

  6. python【蓝桥杯vip练习题库】ADV-236林丹大战李宗伟

    试题 算法提高 林丹大战李宗伟 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 我们用0表示林丹,1表示李宗伟. 输入数据中每行会给出一个0或者1,表示对应选手得1分. 当一方得分达 ...

  7. python【蓝桥杯vip练习题库】ADV-272 change(思维)

    试题 算法提高 change 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 数组A中共有n个元素,初始全为0.你可以对数组进行两种操作:1.将数组中的一个元素加1:2.将数组中所有 ...

  8. python【蓝桥杯vip练习题库】ADV-103逆序排列

    试题 算法提高 逆序排列 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述 编写一个程序,读入一组整数(不超过20个),并把它们保存在一个整型数组中.当用户输入0时,表示输入结束.然后 ...

  9. python【蓝桥杯vip练习题库】ADV-120 6-17复数四则运算

    试题 算法提高 6-17复数四则运算 资源限制 时间限制:1.0s 内存限制:512.0MB 设计复数库,实现基本的复数加减乘除运算. 输入时只需分别键入实部和虚部,以空格分割,两个复数之间用运算符分 ...

最新文章

  1. java不同工厂生产不同电器_完整案例分析再加知识整合——艾特抽象工厂模式,超详细的...
  2. vim的基本快捷操作(二)——可视模式
  3. commvault oracle备份,CommVault for Oracle备份和恢复.pdf
  4. DT CMS致力于Spring Boot2.3.5 Vue前后端分离的RBAC权限框架(盛世美颜!)
  5. Collection和Collections有什么区别?
  6. 微信头像失效_如何判断微信授权的头像是否失效
  7. AutoIt:工具栏中没有其它工具,eg,Koda
  8. ENVI App Store 下载与安装
  9. poj4001 Xiangqi
  10. 【游戏客户端】实现游戏中的小地图
  11. php数据库操作类库doctrine使用全攻略
  12. 如何创建XS Job来完成定时任务
  13. 解决“javac不是内部或外部命令,也不是可运行的程序”问题
  14. html多级列表不连续如何显示,完美解决word多级列表的编号不显示问题
  15. C++_开发_项目开发编码规范
  16. 做事很乱没有条理性,如何让自己做事更有条理?
  17. 怎么用频谱仪测低噪声放大器的噪声系数?
  18. 每个程序员1小时内必须解决的5个编程问题
  19. 顶点覆盖问题近似计算
  20. 计算机毕业设计ssm特种设备全生命周期管理系统8b729系统+程序+源码+lw+远程部署

热门文章

  1. ONVIF C++ 库
  2. VS项目属性中的C/C++运行库:MT、MTd、MD、MDd
  3. 生成对抗网络GANs理解(附代码)
  4. AVFrame中data与linesize关系
  5. python二叉树深度 判断平衡树
  6. 三丶傻妞机器人安装教程+命令+青龙面板对接傻妞
  7. Day 03 为什么大学生难管理时间
  8. Cissp-【第4章 通信与网络安全】-2021-3-12(408页-445页)
  9. linux上离线安装mysql_Linux下安装mysql(离线安装和在线安装)
  10. linux怎么测试磁盘读写,怎样测试Linux磁盘的读写速率