面試題28 字串的排列

2022-07-27 11:36:15 字數 1500 閱讀 8691

【題目描述】

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

【解決方案】

遞迴,依次與其後數字交換,交換一次,輸出一次。

我的**實現,僅供參考:

1

public

static

void permutation(char str, int

start)27

8if (start == str.length - 1)9

1415

console.writeline();16}

1718

for (int i = start; i < str.length; i++)

1930 }

【本題擴充套件】

如果不是求排列,而是求數字的所有組合該怎麼求?例如輸入a,b,c,則他們的組合有a,b,c,ab,ac,bc,abc。

我的**實現,僅供參考:

1

public

static

void perm(string

str)29

}1011public

static

void perm(string str, int len, listresult)

1220

21for (int i = 0; i < str.length; i++)

2227 }

【相關題目】

1. 輸入乙個含有8個數字的陣列,判斷有沒有可能把這8個數字分別放到正方體的8個頂點,使得正方體上三組相對的面上的4個頂點的和都相等。

解析:

我的**實現,僅供參考:

【舉一反三】

如果面試題是按照一定要求擺放若干個數字,我們可以先求出這些數字的所有排列,然後再一一判斷每個排列是不是滿足題目給定的要求。

面試題28 字串排列

輸入乙個字串,按字典序列印出該字串中字元的所有排列。例如輸入字串abc,則列印出由字元a,b,c所能排列出來的所有字串abc,acb,bac,bca,cab和cba。結果請按字母順序輸出。輸入描述 輸入乙個字串,長度不超過9 可能有字元重複 字元只包括大小寫字母。1 class solution 1...

面試題28 字串的排列

1.輸入乙個字串,列印出該字串中字元的所有排列,例如輸入字串abc,則列印出字元a,b,c的所有可能排列,abc,acb,bac,bca,cab,cba.分析 我們可以講字串看成兩部分組成,第一部分為第乙個字元,第二部分是後面所有的字元。首先求所有可能出現在第一位置的字元,即把第乙個字元和後面所有的...

面試題28 字串的排列

題目 輸入乙個字串,列印出該字串中字元的所有排列。例如輸入字串abc,則列印出字元a b c所能排列出來的所有字串abc acb bac bca cab cba。這是乙個典型的遞迴問題,考慮如何將複雜問題分解成簡單問題,最後通過遞迴解決。我們肯定有這樣的經驗,自己在寫abc的全排列的時候,肯定會想首...