[蓝桥杯][基础练习VIP]完美的代价-贪心

题目描述
回文串,是一种特殊的字符串,它从左往右读和从右往左读是一样的。小龙龙认为回文串才是完美的。现在给你一个串,它不一定是回文的,请你计算最少的交换次数使得该串变成一个完美的回文串。

交换的定义是:交换两个相邻的字符

例如mamad

第一次交换 ad : mamda

第二次交换 md : madma

第三次交换 ma : madam (回文!完美!)

输入
第一行是一个整数N,表示接下来的字符串的长度(N < = 8000)

第二行是一个字符串,长度为N.只包含小写字母
输出
如果可能,输出最少的交换次数。

否则输出Impossible
样例输入

5
mamad

样例输出

3

解题思路:
https://blog.csdn.net/weixin_43487219/article/details/84801672
代码如下:

#include <iostream>
#include <cstring>
using namespace std;int main() {int n;int step = 0;bool flag = false;cin >> n;string s;cin >> s;int N = n - 1;for (int i = 0; i < N; i++)for (int j = N; j >= i; j--) {if (i == j) {if (n % 2 == 0 || flag == true) {cout << "Impossible" << endl;return 0;}flag = true;step+=n/2-i;} else if (s[i] == s[j]) {for (int k = j; k < N; k++) {swap(s[k], s[k + 1]);step++;}N--;break;}}cout << step << endl;return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/311321.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安卓手机 python控制_PyAndroidControl:使用python脚本控制你的安卓设备

有的时候玩游戏或者干什么想写写安卓的脚本&#xff0c;不过用 java 或者 kotlin 写图像处理什么的太麻烦了&#xff0c;按键精灵的脚本我也懒得学。adb 倒是可以&#xff0c;但是很多时候要用电脑&#xff0c;又有些不太方便。感觉现在云手机比较方便吧&#xff0c;比如说&…

《ASP.NET Core 微服务实战》送书结果公告

如何构建基于.NET Core和云环境下的微服务技术体系&#xff1f;的送书抽奖结果已经出来了&#xff1a;当前只有一位同学填写了地址。其他几位同学抓紧填写&#xff0c;3/9 日还没有完成填写将作废&#xff0c;奖品可是热门的《ASP.NET Core 微服务实战》。另外我公司商城上上线…

MarkDown的介绍

文章目录markdown是什么优点缺点代码高亮markdown是什么 markdown是一种标记语言&#xff0c;常用文字排版 优点 易读&#xff08;看起来很舒服&#xff09;&#xff0c;易写&#xff08;语法简单&#xff09;跨平台使用&#xff08;mac/win/linux等&#xff09;其他网站和软件…

科学家的假想-substr的妙用

题目背景 DNA是一个神奇的序列&#xff0c;在某科学家的研究中&#xff0c;他发现世界上存在某种病毒入侵到人体内会使人变成小怪兽&#xff0c;按目前技术来说&#xff0c;科学家还无法制造出正义的奥特曼来消灭小怪兽。 题目描述 某科学家收集了世界上几乎所有的DNA病毒&am…

2020 年 Service Mesh 技术展望

背景有外文指出&#xff0c;2020 年 Service Mesh 技术将有以下三大发展&#xff1a;快速增长的服务网格需求&#xff1b;Istio 很难被打败&#xff0c;很可能成为服务网格技术的事实标准&#xff1b;出现更多的服务网格用例&#xff0c;WebAssembly 将带来新的可能。针对 Serv…

搭积木-贪心

题目背景 最近的m天小明都去幼儿园陪小朋友们玩去了~ 题目描述 每个小朋友都拿到了一些积木&#xff0c;他们各自需要不同数量的积木来拼一些他们想要的东西。但是有的小朋友拿得多&#xff0c;有的小朋友拿得少&#xff0c;有些小朋友需要拿到其他 小朋友的积木才能完成他的…

python实现辗转相除法求最大公约数和最小公倍数

辗转相除法数学原理 辗转相除法也称欧几里得算法&#xff0c;是用来求两个正整数的最大公约数的算法。接下来我们用实例来解释一下。假如我们需要求12和21的最大公约数&#xff0c;用辗转相除法是这样实现的&#xff1a; 21 / 12 1 &#xff08;余 9&#xff09; 12 / 9 1&a…

登录系统_执照管理系统登录与执照转换操作指南

执照管理系统登录与执照转换操作指南注&#xff1a;本操作指南适用于所有已经在CCAR-R2执照管理系统中注册的人员(无论是否参加过考试&#xff0c;无论有无考试通过科目).已经在旧系统中完成注册的人员无需在新系统中再次注册。只有完成本指南中的有关操作&#xff0c;才能正常…

BeetleX之XRPC远程委托调用

BeetleX.XRPC是基于接口的远程通讯组件,它不仅可以把接口提供客户端调用,同样也支持服务端创建客户端的接口实例并主动调用客户端的方法.接口有着非常的规范性和约束性,但前提你是必须制定相应的接口并实现才行;为了让通讯在.NET平台使用变得更简便,在新版中组件支持远程委托调…

常用决策树模型ID3、C4.5、CART算法

决策树概述 决策树&#xff08;decision tree&#xff09;&#xff1a;是一种基本的分类与回归方法&#xff0c;下面提到的ID3、C4.5、CART主要讨论分类的决策树。 在分类问题中&#xff0c;表示基于特征对实例进行分类的过程&#xff0c;可以认为是if-then的集合&#xff0c…

android webview卡顿检测_Android webview隐藏后跳转新页面input输入卡顿与白屏渲染慢的问题说明及修复方案...

关于此问题的说明:Android System WebView 内核的bug&#xff1a;当webview页面中存在持续渲染(如跑马灯效果。banner轮播等)。页面被隐藏后会导致JS阻塞影响页面渲染效率。从66.0.3359.126版本到最新都存在此问题。注意&#xff1a;此问题必须是页面隐藏hide后&#xff0c;并且…

hdu4841 圆桌问题-vector容器模拟

Problem Description 圆桌上围坐着2n个人。其中n个人是好人&#xff0c;另外n个人是坏人。如果从第一个人开始数数&#xff0c;数到第m个人&#xff0c;则立即处死该人&#xff1b;然后从被处死的人之后开始数数&#xff0c;再将数到的第m个人处死……依此方法不断处死围坐在圆…

五分钟了解Consul

Hi&#xff0c;大家好&#xff0c;我叫consul&#xff0c;翻译成中文叫做“领事”&#xff0c;其实我更喜欢叫自己为中介&#xff0c;因为我觉得自己做的事情和房产中介非常像。比如说想要卖房的房东到我这边登记&#xff0c;我将房屋信息登录到我的表格中&#xff08;服务注册…

决策树可视化保姆级教程

决策树可视化指南 决策树是机器学习的一种经典的模型&#xff0c;因其泛化性能好&#xff0c;可解释性强而被广泛应用到实际商业预测中。通常在我们完成决策树模型搭建后&#xff0c;我们会进一步研究分析我们搭建好的模型&#xff0c;这时候模型的可视化就显得尤为重要。下面…

ubtunu打开firefox_ubuntu中火狐浏览器问题(也许是)

带宽2M&#xff0c;虽然不多&#xff0c;但是看个网页还是够的在ubuntu中使用火狐浏览器经常会出现以下情况打开某网页&#xff0c;一直都打不开&#xff0c;下方显示正在链接到 某某网页很久之后也许还没连上&#xff0c;接着会有不能上网的提示&#xff0c;然后刷新下大部分…

如何运用领域驱动设计 - 领域事件

开篇距离发布上一篇该系列的文章好像已经过了快一个半月了&#xff0c;好吧&#xff0c;我托更了????。一晃就已经到了3月份&#xff0c;在这樱花????盛开的季节&#xff0c;终于得重新连载该系列了。在停更的期间时不时会收到大家关于DDD的留言和问题&#xff0c;一旦…

滑动窗口最大值-leetcode 239题

给你一个整数数组 nums&#xff0c;有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回滑动窗口中的最大值。 来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 链接&#xff1a;htt…

hdu1276 士兵队列训练问题-list容器

Problem Description 某部队进行新兵队列训练&#xff0c;将新兵从一开始按顺序依次编号&#xff0c;并排成一行横队&#xff0c;训练的规则如下&#xff1a;从头开始一至二报数&#xff0c;凡报到二的出列&#xff0c;剩下的向小序号方向靠拢&#xff0c;再从头开始进行一至三…

diff git 指定时间,git diff日期?

Im accustomed to running a git comparison that will allow comparison with local git revs like:git diff HEAD HEAD~110 -- some/file/path/file.extIs it possible to use the date instead? And if so, how? I would like to be able insert in place of the "11…

一文读懂 Copyleft 开源许可证

开源组件已改变了我们开发软件的方式。来自开源社区的现成库&#xff08;ready-made libraries&#xff09;使忙碌的开发者们能专注于他们的秘密武器&#xff0c;这些秘密武器或将成为未来令人兴奋的新软件产品。而且不需要付费。下载开源组件不需要你提供信用卡号码&#xff0…