搜索
写经验 领红包
 > 职场

有重复元素的排序问题c语言(c

导语:C++编程实战题解:有重复元素的排列问题(DFS基础)

题目描述

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

输入

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

输出

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

样例输入
4aa..
样例输出
aa..a.a.a..a.aa..a.a..aa6
算法分析:

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

参考程序和运行结果:

本文内容由小快整理编辑!