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

第十一届蓝桥杯——字串排序(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

产品经理必看!用Cursor自动生成符合开发规范的技术文档(含UI设计规则模板)

本文详细介绍了产品经理如何利用Cursor工具自动生成符合开发规范的技术文档,并整合UI设计规则模板。通过配置标准化文档结构和设计关联规则,Cursor能有效解决术语不统一、结构混乱等问题,提升跨团队协作效率。文章包含实际案例、规则配置要点及企业级实施方案,帮助产品经理快速掌握AI辅助文档生成技巧。

emacs5lisp的博客 224

第十一届蓝桥杯(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

从SolidWorks到URDF:插件使用、关节配置与PyBullet仿真避坑指南

本文提供了一份从SolidWorks导出URDF模型并导入PyBullet进行仿真的完整实战指南。详细讲解了SolidWorks插件的正确安装与配置、关节类型的选择与坐标系对齐的核心技巧,并针对PyBullet仿真中常见的模型散架、路径错误、物理属性异常等问题提供了深度避坑解决方案,帮助机器人开发者高效完成从设计到仿真的全流程。

weixin_29081101的博客 544

别再纠结VS还是VSCode了!新手C#环境搭建保姆级指南(含.NET Core安装验证)

本文为C#新手提供Visual Studio与VS Code的深度对比及环境搭建指南,涵盖.NET Core安装验证、工具选择决策框架及实战配置技巧。帮助开发者根据项目需求选择合适工具,快速搭建高效开发环境,提升编码效率。

weixin_30455023的博客 561

蓝桥杯 字符串的全排列 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

ESP32-CAM搭建Arduino及简单使用

配置环境 方法一 文件 → 首选项 http://wechat.doit.am/package_esp8266com_index.json https://dl.espressif.com/dl/package_esp32_index.json 工具 → 开发板 → 开发板管理器 等待安装 方法二 https://github.com/espressif/arduino-esp32 Arduino安装目录下,找到hardware文件夹 建立文件夹espressif,然后在里面再建立一个esp32文件夹

Ying的博客 2万+

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

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

MaxVen 7106

Excel曲线拟合实战:从基础趋势线到高级回归分析

本文系统介绍了Excel曲线拟合的完整工作流,从基础的散点图与趋势线应用,到利用Solver插件进行自定义高级回归分析。文章详细讲解了线性、多项式、指数、对数等六大常用数学模型的适用场景与选择方法,并强调了通过R²值、残差图评估拟合效果、避免过拟合与外推风险的关键步骤,帮助读者掌握从数据探索到预测评估的实战技能。

weixin_29280219的博客 538

GEE生物量碳储量——利用sens和MK检验方法计算1987-2022年森林地上生物量AGB和碳储量的时空变化特征

本文是将之前已经处理好的森林生物量和碳储量数据保存到GEE Assets中,然后分别将单张影像导入到代码编辑器中,构建一个时间序列集合,并且这里需要用到的是我们给影像添加指定的时间属性,这样方便进行下一步的时序分析和空间预测。首先,需要收集1987年至2022年期间森林地上生物量AGB和碳储量数据。该数据可以通过森林清查数据、卫星遥感数据等途径获取。然后,根据这些数据,可以使用sens(敏感性分析)和MK(Mann-Kendall)方法计算时空变化特征。

此星光明博客 1264

全排列(来自蓝桥杯)

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

Bowen的博客 3155

气象大模型光伏功率预测中的应用:从短期,超短期,中长期的实现与开源代码详解

本文详细介绍了基于大模型的光伏功率预测方法,涵盖超短期(15分钟-1小时)、短期(1-6小时)和中长期(1天-1周)预测。文章首先讨论了数据准备与预处理,包括历史功率、气象、天文和电站特性数据的收集与特征工程。随后,针对不同预测需求,提出了多种深度学习模型:超短期预测采用1DCNN-LSTM混合模型,短期预测使用Transformer模型,中长期预测则通过多尺度特征提取模型和概率预测方法处理不确定性。文章还提供了模型训练、评估、部署和优化的完整流程,并开源了代码实现。未来研究方向包括结合数值天气预报、开发时

专注AI大模型,软件混淆,授权 1580

【蓝桥杯】全排列

蓝桥杯之全排列

涛涛的个人博客 2856

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Java蓝桥杯全排列问题

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

Crazyjava_的博客 522

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

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

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

梦码城博客中心 1648

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

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、付费专栏及课程。

余额充值