蓝桥杯练习题 字符串全排列 题解

第十一届蓝桥杯——字串排序(DP) 问题描述 小蓝最近学习了一些排序算法,其中冒泡排序让他印象深刻。 在冒泡排序中,每次只能交换相邻的两个元素。小蓝发现,如果对一个字符串中的字符排序,只允许交换相邻的两个字符,则在所有可能的排序方案中,冒泡排序的总交换次数是最少的。 例如,对于字符串 lan 排序,只需要 1 次交换。对于字符串 qiao 排序,总共需要 4 次交换。 小蓝找到了很多字符串试图排序,他恰巧碰到一个字符串,需要 V 次交换,可是他忘了把这个字符串记下来,现在找不到了。 请帮助小蓝找一个只包含小写英文字母且没有字母重复出现的字符串 阅读详情

题目:
已知不同字母构成的串,求它的全排列

思路1:
用递归自己写

思路2:
用STL库中next_permutation()函数

Code1:

#include<bits/stdc++.h>
using namespace std;
const int maxn = 1010;
string s,ans;
int len;
bool used[maxn];

void dfs(int idx){
    //当前要考虑的第idx个位置的字符 下标从0开始 
    if(idx == len){
        cout<<ans<<endl;
    }

    for(int i = 0; i < len; ++i){
        if(!used[i]){
            ans[idx] = s[i];
            used[i] = true;
            dfs(idx + 1);
            used[i] = false;
        } 
    }
}

int main(){
    cin>>s;
    len = s.length();
    ans = s;
    sort(s.begin(), s.end());
    memset(used, false, sizeof(used));
    dfs(0); 
    return 0;
} 

Code2:

#include<bits/stdc++.h>
#include<string>
using namespace std;

int main(){
    string s;
    cin>>s;
    sort(s.begin(), s.end());
    do{
        cout<<s<<endl;
    }while(next_permutation(s.begin(), s.end()));
    return 0;
}

PS:写代码时遇到了一个问题,非常非常基础的STL库里的string问题,
string ans没有给它分配空间就给它赋值了,因为ans.size() 等于0,不能用cout输出

蓝桥杯历年真题分类汇总(史上最全版本,一定不要错过) 天再高又怎样,踮起脚尖就更接近阳光。 满满的 题型总结​ 历年真题​ 视频讲解​ 比赛技巧 题型总结 2021 2020 2019 2018 2017 2016 2015 2014 2013 ... 阅读详情

相关推荐

【蓝桥杯备赛】历年真题解答+知识点总结

CC150给出算法题五种解法 举例法:具体例子,到一般规则(公式符号化) 模式匹配法:相似问题,到现有问题(经典的变体) 简化推广法:从简化版,到复杂版(修改约束条件) 简单构造法:从n=1开始(递归过递推) 数据结构头脑风暴法:链表?数组?二叉树?堆?栈?队列?前缀和?树桩数组?区间树? ...

m0_52427832的博客 2万+

蓝桥杯真题:字串排序

蓝桥杯 字符串 动态规划

weixin_46266058的博客 1万+

蓝桥杯省赛C++A组B组题解整理(第十、九、八、七、六、五、四、三届)

【写在前面的话19.03.24】 从第八届蓝桥杯到第十届蓝桥杯,我也是参加了三届蓝桥杯的老学姐啦,更不更新第十届的题解取决于网上有没有流出题目,但是第十届之后的题解将不会再更新了。下面的这些真题大多是我在大一的时候刷的,在大二的时候整理的,在大三的时候有修正或加更。大一的时候还不太会写代码,大约是2月份开始学编程,刷真题,4月初比的赛,然后拿了省一进了国赛,最后也混了一个国三。总有小伙伴问我大概...

ryo_218的博客 3万+

蓝桥杯字符串排序 C语言 (新手向)

对输入的字符串进行排序后输出

qq_57523304的博客 685

2015第六届蓝桥杯 C/C++B组真题及题解

1. 奖券数目有些人很迷信数字,比如带“4”的数字,认为和“死”谐音,就觉得不吉利。虽然这些说法纯属无稽之谈,但有时还要迎合大众的需求。某抽奖活动的奖券号码是5位数(10000-99999),要求其中不要出现带“4”的号码,主办单位请你计算一下,如果任何两张奖券不重号,最多可发出奖券多少张。请提交该数字(一个整数),不要写任何多余的内容或说明性文字。【分析】循环+枚举        4的出现有5种...

cr496352127的博客 5655

蓝桥杯国赛C++A组B组题解整理(第八、七、六、五、四届)

【写在前面的话19.04.04】 今年省赛的结果出的意外得快,有很多小伙伴来和我分享他们进了省一的喜悦,并问我啥时候更新国赛题解,emmm……不是我不想更新,实在是抽不出时间,我现在手上还有四个比赛,忙成狗QAQ 题解嘛,有缘再更……虽然不更新题解,但是我决定这次提前写一点注意事项吧,省得大家来不及准备hhhhh 首先要注意的一点是,蓝桥杯和别的比赛不同的是,并不是你进了省一就默认你国三了,如...

ryo_218的博客 1万+

【leetcode-python】1544. 整理字符串

给你一个由大小写英文字母组成的字符串 s 。 一个整理好的字符串中,两个相邻字符 s[i] 和 s[i+1],其中 0<= i <= s.length-2 ,要满足如下条件: 若 s[i] 是小写字符,则 s[i+1] 不可以是相同的大写字符。 若 s[i] 是大写字符,则 s[i+1] 不可以是相同的小写字符。 请你将字符串整理好,每次你都可以从字符串中选出满足上述条件的 两个相邻 字符并删除,直到字符串整理好为止。 请返回整理好的 字符串 。题目保证在给出的约束条件下,测试样例对应的答

hbk5241的博客 577

生成对抗网络——CGAN(代码+理解)

CGAN(Conditional Generative Adversarial Network)模型是一种 深度学习模型,属于生成对抗网络(GAN)的一种 变体。它的 基本思想是通过 训练生成器和判别器两个网络,使生成器能够生成与给定条件 相匹配的 合成数据,而判别器则 负责区分真实数据和 生成数据。相比于GAN它引入了条件信息(y),使得生成器可以生成与给定条件相匹配的合成数据,从而提高了生成数据的可控性和针对性。

CXDNW的博客 1万+

第十一届蓝桥杯(2020)大学A组字串排序

首先:题目要求字串最短,那么就要求字串的字母换顺序换了尽可能多次,即冒泡排序遇到最坏情况——倒序排,如(X5)(X4)(X3)(X2)(X1),正确排序后变为(X1)(X2)(X3)(X4)(X5),交换10次,此时用尽可能少的数实现了交换次数尽可能多;理想情况下,也就是v正好是某个数的累和,比如1,3,6,10......只要正向for循环一下n-1,n+1,肯定会找到准确的n;小蓝发现,如果对一个字符串中的字符排序,只允许交换相邻的两个字符,则在所有可能的排序方案中,冒泡排序的总交换次数是最少的。

2201_75927774的博客 634

C#实战:手把手教你用SerialPort实现RS485 ModbusRTU通信(附完整代码)

本文详细介绍了如何使用C#的SerialPort类实现RS485 ModbusRTU通信,包括硬件准备、串口配置、数据收发核心逻辑及高级通信技巧。通过实战案例和完整代码,帮助开发者快速掌握工业级通信框架的构建方法,提升设备间通信的稳定性和效率。

weixin_29207533的博客 255

计算机图形学入门30:动画与模拟介绍

计算机图形学入门,动画与模拟,物理模拟,质点弹簧系统,运动学,粒子系统,动作捕捉。

YanisWu的博客 1485

蓝桥杯 字符串的全排列 JAVA

问题描述:     一组字符串的全排列,按照全排列的顺序输出, 并且每行结尾无空格。 输入:     输入一个字符串 输入示例:     请输入全排列的字符串:     abc 输出示例:     a b c     a c b     b a c     b c a     c b a     c a b import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner sc

高瑜的博客 4286

MIKE 21 教程 2.2 Domain, Time, Module Selection设置教学

上一节讲解了水动力模型的基本概念与文件创建MIKE 21 教程 2.1水动力模型介绍​本节讲解水动力模型前三个模块的设置此模块需导入之前绘制好的网格文件,导入后可预览网格文件点击上方的Domain Specification可查看网格的数据统计与高程属性,快速检查网格文件有无明显错误 点击上方的Boundary names,可查看之前定义的出入水边界。在网格文件中,我们对边界只能以数字属性进行区分,这里可以对数字属性进行命名,在name中直接修改即可。本实例中我们的2代表入水边界,3代表出水边界。因为博主日

Hello Word 3867

蓝桥杯知识点总结C++ B组

虽然目前距离蓝桥省赛仅仅过去一天但昨天下午和大神对答案的感觉依旧… 现在深刻里理解到了为啥大神老是说咱们蓝桥叫 阅读理解杯(现在我非常认同这种说法啊…) 虽然第一次参加,赛前紧张提前30分钟入场,当认真做题的时候就真的忘记自己还在紧张…(感觉紧张可以忽略不计了) 28日出成绩了竟然是二等奖…有点小激动虽然这个含金量很少…一直觉得不是三等就是优秀… 第十届山东省赛(C++/C B组) 第一题 …(答...

MaxVen 7106

PCL 法线定向【2025最新版】

几种法线定向方法的PCL代码实现。

点云侠的博客 2806

Python实现将pdf,docx,xls,doc,wps,zip,xlsx,ofd链接下载并将文件保存到本地

本文是该专栏的第31篇,后面会持续分享python的各种干货知识,值得关注。在工作上,尤其是在处理爬虫项目中,会遇到这样的需求。访问某个网页或者在采集某个页面的时候,正文部分含有docx,或pdf,或xls,或doc,或wps等链接。需要你使用python自动将页面上含有的这些信息链接下载并保存到指定文件夹。遇到这种情况需要怎么做呢?别担心,跟着笔者直接往下看正文的详细解决方法。(附完整代码)在有些网页的正文中,有时会有如下图中的doc链接。比如爬虫在采集正文数据的时候,像标题,正文内容,作者,发布时间等等

Python进阶专栏《爬虫实战进阶》,《Pyppeteer从入门到精通》原创作者 4147

全排列(来自蓝桥杯)

做了道蓝桥杯的题,发现并不会做,不过这个题做了也算涨了个知识点。题目:相信大家都知道什么是全排列,但是今天的全排列比你想象中的难一点。我们要找的是全排列中,排列结果互不相同的个数。比如:aab 的全排列就只有三种,那就是aab,baa,aba。代码框中的代码是一种实现,请分析并填写缺失的代码下面是题目的代码#include &lt;cstdio&gt; #include &lt;cstdlib&g...

Bowen的博客 3155

软考高级架构师笔记-10数学计算题

专栏《软考高级架构设计师》更新了,本章列举了10个场景计算题的解法,温故而知新,大家快来卷一卷

java后端开发的博客,不仅仅是后端开发 1599

【蓝桥杯】全排列

蓝桥杯之全排列

涛涛的个人博客 2856

基于YOLOv8的建筑材料分类系统:从数据集构建到UI界面实现

建筑材料分类数据集需要包含各种常见建筑材料的图像,并对每种材料进行标注。砖块(Brick)混凝土(Concrete)钢筋(Rebar)木材(Wood)瓷砖(Tile)玻璃(Glass)钢材(Steel)塑料(Plastic)石膏板(Drywall)绝缘材料(Insulation)如果没有找到合适的公开数据集,可以构建自己的数据集。使用智能手机或专业相机拍摄各种建筑材料的照片确保在不同光照条件、角度和背景下拍摄每类材料至少收集300-500张图像。

YOLO 490

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Java蓝桥杯全排列问题

蓝桥杯练习题_001_全排列问题 问题: 给定n个字符,将这n个字符全排列有n!种情况,例如:给定三个字符ABC,则有ABC,ACB,BCA,BAC,CAB,CBA共321=6种情况。请输出给定字符个数时,所有的全排列情况,以及总个数。 关键: 学会使用Vector向量类,利用递归的思想就行求解。简单介绍下Vector类:实现了一个动态数组,类似于ArrayList。和 ArrayList...

Crazyjava_的博客 522

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

蓝桥杯——Java中的全排列算法

蓝桥杯——Java中的全排列 全排列的概念 排列 从n个数中选取m(m<=n)个数按照一定的顺序进行排成一个列,叫作从n个元素中取m个元素的一个排列。不同的顺序是一个不同的排列。从n个元素中取m个元素的所有排列的个数,称为排列数。 全排列 从n个元素取出n个元素的一个排列,称为一个全排列。全排列的排列数公式为[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gjUFMrJx-1614071860880)(https://math.jianshu.com/math?formu

梦码城博客中心 1648

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

2025蓝桥杯C++ A组省赛 题解

2025蓝桥杯C++A组省赛,爆搜,数学,双指针,基环树,优先队列滑动窗口,预处理

qq_45809243的博客 4047

蓝桥杯题解-凑算式(全排列变体)

题目这是蓝桥杯2016年第七届省赛B组合C组都有的一个结果填空题:凑算式 B DEF A + --- + ------- = 10 C GHI(如果显示有问题,可以参见【图1.jpg】) 这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。比如: 6+8/3+952/714 就是一种解法, 5+3/1+972/486 是另一种解法。这个算式一共有多少种解

小9的专栏 1702

蓝桥杯:字符串全排列

题目: 已知不同字母构成的串,求它的全排列 方法一: public class FullArray { static List<String> f(String s){ List<String> list = new ArrayList<>(); if(s.length()==1) { list.add(s); return list...

Buns.的博客 330

全排列(Java代码)——蓝桥杯备赛笔记

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Ma...

阿昌 987
上一篇: 蓝桥杯真题 搭积木 题解
下一篇: 蓝桥杯真题 算式填符号 题解
SkyeBCI
博客等级 码龄9年 231粉丝 211原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值