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

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

SkyWalking跨线程Trace传递实战:手把手教你用RunnableWrapper解决异步链路中断问题

本文深入解析了SkyWalking在异步编程场景下链路追踪中断的根源,并提供了使用RunnableWrapper等官方包装类的实战解决方案。通过详细的原理解析和代码示例,手把手指导开发者如何实现跨线程的Trace传递,确保分布式系统监控链路的完整性,有效解决异步任务导致的链路中断问题。

sand8的博客 495

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

Fanuc机器人的坐标变换矩阵的研究2

一、Funuc用户坐标系的介绍 二、用户坐标系与世界坐标系的坐标转换 三、 以用户坐标系1为基础旋转变换后的用户坐标系 四、关于点的WPR的含义 4.1:点在用户坐标系和世界坐标系下的坐标关系 4.2 通过转换矩阵返回去推导WPR

qq_34047402的博客 1525

保姆级教程:不用看古早代码,5分钟搞懂泛微ecology9附件存储与接口调用

本文详细解析了泛微ecology9附件存储与接口调用的核心原理,提供从基础概念到实战操作的完整指南。通过拆解文档化附件设计理念、解析RESTful接口参数,并给出Python代码示例,帮助开发者快速掌握附件上传与业务集成的关键技巧,提升二次开发效率。

weixin_28688385的博客 351

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

三种1:4传输线变压器巴伦的分析

满足多模多馈天线系统匹配要求的传输线变压器巴仑有:双线传输线变压器( 见图1) 、三线传输线变压器( 见图4) 和四线传输线变压器( 见图5) 。尽管3 者的结构不同, 但都可实现1∶4 阻抗变换和不平衡-平衡转换。下面就应用电报方程对它们的阻抗变换特性和输出平衡特性进行分析。

weixin_42407808的博客 8050

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

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

MaxVen 7106

# YOLOv11-seg改进系列 | 引入CVPR MetaFormer的C3k2_PoolingFormerCGLU模块,池化Token混合+CGLU门控MLP

本文引入 CVPR 2022 论文(MetaFormer/PoolFormer)提出的 MetaFormer 元架构设计,以Pooling Token 混合器 + ConvolutionalGLU(CGLU)MLP构成,将其封装为,用于替换 YOLOv11-seg 的 C3k2 块。对比维度C3k2(基线)C3k2_PoolingFormerCGLU(本文)参数量(n scale)2.46M≈2.49M9.6≈9.69.7(+1.0%)架构范式单阶段卷积MetaFormer 双阶段。

qq_44224801的博客 846

VisionPro - 基础 - 模板匹配技术-Search/PMAlign/PatMax(6)-纹理屏蔽和重叠匹配

Note:对已经有了,1已经训练好的模板,2一组使能的自由度,3一个待测的实时图片,PatMax 就能模板匹配的给出变化的最佳描述。对一些综合的模板,这三个输入值往往是一起影响最后的变换结果信息。例如,如果我们训练了一个圆形的模板,然后搜索一个角度自由度包括一个圆,那么将会有无限个可能的角度满足要求。这些组合的模板匹配,被官方名为:退化系统,a degenerate system的结果被叫做a degenerate result 退化结果4.2 退化系统例子。

山云的专栏 1534

全排列(来自蓝桥杯)

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

Bowen的博客 3155

在SAP系统中创建物料 860000000000000082(物料描述为“8680月球广寒宫坦克车”)时,系统报出了一个错误

摘要:SAP系统创建物料"8680月球广寒宫坦克车"时出现"C+020"错误,提示评估区域C916未在物料分类账中设置为生产性。解决方案需进入"会计-控制-产品成本控制-实际成本核算"路径,将评估区域C916手动设置为生产性状态。该操作需由具备权限的系统管理员或FICO顾问执行,建议操作前进行数据备份或在测试环境验证。完成设置后即可重新创建物料。

金牌架构师 392

【蓝桥杯】全排列

蓝桥杯之全排列

涛涛的个人博客 2856

32、通用处理器通信平台发展与5G开源社区技术解析

本文探讨了基于通用处理器(GPP)的通信平台在5G技术中的发展现状与挑战,详细介绍了多个开源平台和硬件架构,并分析了软件加速方法和未来发展方向。文章指出,尽管GPP具有灵活性和开放性优势,但在实时信号处理和功耗等方面仍存在瓶颈,需要通过核心技术研发、标准化协作和应用拓展推动5G技术的实际应用。

orange的博客 129

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Java蓝桥杯全排列问题

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

Crazyjava_的博客 522

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

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

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

梦码城博客中心 1648

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

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

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

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

余额充值