字串的排列

2021-06-23 04:26:40 字數 598 閱讀 6838

題目:

輸入乙個字串,列印出該字串中字元的所有排列

思想:把乙個字串看成是兩部分組成:第一部分為他的第乙個字元,第二部分為後面所有的字元

首先求所有可能出現在第乙個位置的字元,即把第乙個字元和後面所有的字元交換.

然後固定第乙個字元,求後面所有字元的排列,仍把後面的所有字元分成兩部分:後面字元

的第乙個字元,以及這個字元後面的所有字元

最後把第乙個字元逐一和後面的字元交換

#include#includevoid permutation_ex(char* ,char*);

void permutation(char* pstr)

/*pstr指向整個字串的第乙個字元,pbegin指向當前我們做排列操作的字串的第乙個

字元,在每一次遞迴的時候,從pbegin向後掃瞄每乙個字元.在交換pbegin和pch

指向的字元之後,再對pbegin後面的字串遞迴排列,直至pbegin指向字串的末尾

*/void permutation_ex(char* pstr,char* pbegin) }}

int main()

結果:

字串排列

在網上看到了乙個操作字串的題目,該題為 字串排列。大概意思是列出字串中所有字元的所有組合並且輸出無重複。自己做了一下,這裡分享該題的思路,和做法。自我覺得實現的有些麻煩 歡迎指點。問題輸入乙個字串,列印出該字串中字元的所有排列。輸入 字串abc。輸出 列印出由字元a,b,c所能排列出來的所有字串ab...

字串排列

輸入乙個字串,按字典序列印出該字串中字元的所有排列。例如輸入字串abc,則列印出由字元a,b,c所能排列出來的所有字串abc,acb,bac,bca,cab和cba。第一種方法 字串拼接 function permutate str else return result console.log pe...

字串的排列

題目 輸入乙個字串,列印出該字串中字元的所有排列。例如輸入字串 abc,則輸出由字元a b c所能排列出來的所有字串 abc acb bac bca cab和 cba。分析 這是一道很好的考查對遞迴理解的程式設計題,因此在過去一年中頻繁出現在各大公司的面試 筆試題中。我們以三個字元 abc為例來分析...