学习
实践
活动
专区
工具
TVP
写文章

C+搜索基础题解:有重复元素的排列问题

题目描述

对n个元素进行全排列,这n个元素由各种字符组成,这n个元素中的某些可能相同

输入

第一行一个正整数n ,第二行n个字符

输出

每行一个序列,只输出前10个序列,不足就全输出

样例输入

4

aa..

样例输出

aa..

a.a.

a..a

.aa.

.a.a

..aa

6

算法分析:

由于给定的元素中可能存在相同的元素,像输入样例中字符'a'和'.'就各有两个,如果直接用回溯法对全部元素进行全排列,就会出现重复的排列。可以先统计出给定的元素中每种字符有几个,用b[i]表示第i种字符有b[i]个,然后对这些元素进行遍历时,对i种字符进行n轮遍历,这样排除了出现重复排列的可能。

参考程序和运行结果

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200310A0FYKO00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

关注

腾讯云开发者公众号
10元无门槛代金券
洞察腾讯核心技术
剖析业界实践案例
腾讯云开发者公众号二维码

扫码关注腾讯云开发者

领取腾讯云代金券