演算法 輸出乙個字串的全排列(C )

2021-09-25 00:10:52 字數 2425 閱讀 2850

/*

* created by chimomo

* * 實現方法:

* 對於乙個字串"abc"輸出它的全排列,第乙個字元應該分別為a,b,c;第二個字元,後面應該是除去已輸出部分的剩餘部分的全排列。

* * 即對於"abc",

* 輸出 a,輸出"abc"除去'a'的全排列;

*   輸出 b,輸出"bc"除去'b'的全排列;

*   輸出 c,輸出"bc"除去'c'的全排列;

* 輸出 b,輸出"abc"除去'b'的全排列;

* 輸出 c,輸出"abc"除去'c'的全排列;

* * 所以乙個遞迴的實現方法是:

* void permute(已輸出部分,全部除去已輸出部分)

*   if 全部除去已輸出部分!=空

*     for letter in 全部除去已輸出部分

*       全部除去已輸出部分:remove letter

*       permute(已輸出部分,全部除去已輸出部分)

*     end for

*   else 輸出 已輸出部分

*/ #include #include #include using namespace std;

/*** permute.

* @param pre already permuted list.

* @param str the list not permuted.

*/void permute(listpre, liststr)

} else }

int main()

// output:

/*abcde

abced

abdce

abdec

abecd

abedc

acbde

acbed

acdbe

acdeb

acebd

acedb

adbce

adbec

adcbe

adceb

adebc

adecb

aebcd

aebdc

aecbd

aecdb

aedbc

aedcb

bacde

baced

badce

badec

baecd

baedc

bcade

bcaed

bcdae

bcdea

bcead

bceda

bdace

bdaec

bdcae

bdcea

bdeac

bdeca

beacd

beadc

becad

becda

bedac

bedca

cabde

cabed

cadbe

cadeb

caebd

caedb

cbade

cbaed

cbdae

cbdea

cbead

cbeda

cdabe

cdaeb

cdbae

cdbea

cdeab

cdeba

ceabd

ceadb

cebad

cebda

cedab

cedba

dabce

dabec

dacbe

daceb

daebc

daecb

dbace

dbaec

dbcae

dbcea

dbeac

dbeca

dcabe

dcaeb

dcbae

dcbea

dceab

dceba

deabc

deacb

debac

debca

decab

decba

eabcd

eabdc

eacbd

eacdb

eadbc

eadcb

ebacd

ebadc

ebcad

ebcda

ebdac

ebdca

ecabd

ecadb

ecbad

ecbda

ecdab

ecdba

edabc

edacb

edbac

edbca

edcab

edcba

*/

參考部落格:

獲得乙個字串的全排列

public class permutation else param args public static void main string args todo auto generated method stub permutation p new permutation string s ab...

在乙個字串中查詢另外乙個字串的全排列出現位置

1 在乙個字串中查詢另外乙個字串任意的全排列出現位置。例如 a abcfsfcba b abc 則返回。the des s character must be adjacent public static list integer getindex string res,string des has...

乙個字串演算法問題

已知一組數字 21,25,11,32,12,35,55,77,66 要求按以下規則進行排序 第乙個數最大,第二個數最小,第三個數是剩下中的最大的,第四個數是剩下中的最小的,依此類推,請設計乙個字元介面的程式解決之 c codes as below class program console.read...