題目描述
對n個元素進行全排列,這n個元素由各種字符組成,這n個元素中的某些可能相同
輸入
第一行一個正整數n ,第二行n個字符
輸出
每行一個序列,只輸出前10個序列,不足就全輸出
樣例輸入
<code>4
aa../<code>
樣例輸出
<code>aa..
a.a.
a..a
.aa.
.a.a
..aa
6/<code>
算法分析:
由於給定的元素中可能存在相同的元素,像輸入樣例中字符'a'和'.'就各有兩個,如果直接用回溯法對全部元素進行全排列,就會出現重複的排列。可以先統計出給定的元素中每種字符有幾個,用b[i]表示第i種字符有b[i]個,然後對這些元素進行遍歷時,對i種字符進行n輪遍歷,這樣排除了出現重複排列的可能。
參考程序和運行結果:
閱讀更多 機房日子 的文章