《劍指Offer》面試題28 字串的排列

2021-08-21 08:59:51 字數 1740 閱讀 3898

《劍指offer》面試題28:字串的排列

字串的全排列和組合演算法

遞迴輸入乙個字串,列印出該字串中字元的所有排列。例如輸入字串abc,則列印出字元a、b、c所排列出來的所有字串abc、acb、bac、bca、cab和cba。

輸入乙個字串,輸出該字串中字元的所有組合。舉個例子,如果輸入abc,它的組合有a、b、c、ab、ac、bc、abc。

上面我們詳細討論了如何用遞迴的思路求字串的排列。同樣,本題也可以用遞迴的思路來求字串的組合。

假設我們想在長度為n的字串中求m個字元的組合。我們先從頭掃瞄字串的第乙個字元。針對第乙個字元,我們有兩種選擇:第一是把這個字元放到組合中去,接下來我們需要在剩下的n-1個字元中選取m-1個字元;第二是不把這個字元放到組合中去,接下來我們需要在剩下的n-1個字元中選擇m個字元。這兩種選擇都很容易用遞迴實現。

劍指offer 面試題28 字串的排列

題目描述 輸入乙個字串,列印出該字串中字元的所有排列。例如輸入字串abc,則列印出由字元a,b,c 所能排列出來的所有字串abc,acb,bac bca,cab 和cba 題目分析 可以分成兩步。第一步求所有可能出現在第乙個位置的字元,即把第乙個字元和後面所有的字元交換。第二步固定第乙個字元,求後面...

劍指offer 面試題28 字串的排列

題目 輸入乙個字串,按字典序列印出該字串中字元的所有排列。例如輸入字串abc,則列印出由字元a,b,c所能排列出來的所有字串abc,acb,bac,bca,cab和cba。輸入描述 輸入乙個字串,長度不超過9 可能有字元重複 字元只包括大小寫字母。思路 這個不是書上的思路 每次放乙個字母在cur位置...

面試題 劍指Offer 28 字串的全排列

昨天做了一套cvte的面試題,最後乙個題目就是字串的全排列。做過劍指offer的童鞋一眼就可以看出這是劍指offer 28題 原題目,一點都沒變 把字串看成兩個部分,第乙個部分為第乙個字元,剩下的是後面的字元 首先將所有可能出現在第乙個位置的字元,將這些字元在每次迴圈的時候和第乙個字元交換 先固定乙...