字元排列問題

2021-06-27 00:53:13 字數 749 閱讀 1908

題目描述

n個字母,列出由該字母組成的字串的全排列(相同的排列只計一次)。

輸入

第一行輸入是字母個數n,

1<=n<=20

。接下來一行輸入的是待排列的

n個字母。

輸出

計算出的

n 個字母的所有不同排列總數

樣例輸入

4

aacc

樣例輸出

6

/*看到這個題首先想到對n個字元全排列,這當然會用到階乘,將階乘所得值賦值給ans,定義乙個變數b,賦初值為1,從1-n判斷前後兩個字元是否相等,若相等,b加1,直到迴圈結束,輸出結果為ans/b的值!*/

#include #include #include int cmp(const void *a,const void *b)

int main()

{ int n;

char s[21];

while(scanf("%d %s",&n,s)!=eof)

{qsort(s,n,sizeof(s[0]),cmp);

long ans=1,b=1;

int i;

for(i=1;i<=n;i++)

ans*=i;

for(i=1;i

字元排列問題

有n個字母,列出由該字母組成的字串的全排列 相同的排列只計一次 第一行輸入是字母個數n,1 n 20。接下來一行輸入的是待排列的n個字母。計算出的n 個字母的所有不同排列總數 4 aacc include include using namespace std int test int s int ...

字串全排列問題

全排列問題 給定字串 abc,全排列為 abc,acb,bac,bca,cab,cba 遞迴實現 1 標記訪問狀態陣列 val,當前所儲存的字串物件 tmp,儲存結果陣列 res 2 思路 2.1 每次從 0 到 str.length 1,選擇未被訪問的字元加入到 tmp 中,標記當前字元為已訪問 ...

字串全排列問題

問題描述輸入乙個字串,列印出該字串中字元的所有排列 演算法思路通過遞迴的方法來實現。從字串中選出乙個字元作為排列的第乙個字元,然後對剩餘的字元進行全排列。如此遞迴處理。實現def premutation str length len str if length 1 return str array ...