《劍指Offer》27 字串的排列

2021-09-11 02:11:20 字數 712 閱讀 1569

題目:27. 字串的排列

知識點:字串、回溯演算法

題目描述:

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

解題思路:

主要是使用回溯演算法的思想,通過遞迴從後向前將字串分為固定部分和變化部分,然後每次對後部的變化部分進行雙指標掃瞄和位置交換。

需要注意的是對於去重的處理,對於變化部分的非起始元素,如果將要進行交換的兩個位置的字元相等,那麼就跳過此次交換。

**:

//解法一(自研):

vectorpermutation(string str)

void combination(vector& res, string str, int index)

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

}//解法二(劍指offer):

void permutation(char* pstr)

void permutation(char* pstr, char* pbegin)

else

}}

劍指offer 27 字串的排列

輸入乙個字串,按字典序列印出該字串中字元的所有排列。例如輸入字串abc,則列印出由字元a,b,c所能排列出來的所有字串abc,acb,bac,bca,cab和cba。輸入描述 輸入乙個字串,長度不超過9 可能有字元重複 字元只包括大小寫字母。時間限制 1秒 空間限制 32768k 熱度指數 2992...

劍指offer(27)字串的排列

輸入乙個字串,按字典序列印出該字串中字元的所有排列。例如輸入字串abc,則列印出由字元a,b,c所能排列出來的所有字串abc,acb,bac,bca,cab和cba。輸入描述 輸入乙個字串,長度不超過9 可能有字元重複 字元只包括大小寫字母。這題還算可以,關於全排列,有兩種解法,第一種就是遞迴全排列...

劍指offer 27 字串的排列 Python

輸入乙個字串,按字典序列印出該字串中字元的所有排列。例如輸入字串abc,則列印出由字元a,b,c所能排列出來的所有字串abc,acb,bac,bca,cab和cba。輸入描述 輸入乙個字串,長度不超過9 可能有字元重複 字元只包括大小寫字母。全排列 從n個不同元素中任取m m n 個元素,按照一定的...