輸入乙個字串,列印出該字串的所有排列,例如輸入字串abc ,則列印出a,b,c 所能排列出來的所有字串 abc,acd,bac,bca,cab,cba。
看似簡單,其實不是很好做,應該把問題分解為子問題,我們把字串看成兩個部分,首字母自己作為一部分,後面的其他節點當做其它部分。可以看成兩部走:
求出所有課程出現在第一位的字元 a和後面的bc交換。
第二步:固定第乙個字元,求後面所有字元的排列。這個時候,第二步就抓換成乙個子問題。
同時還應該注意重複字串的問題 如: aa的排列只要乙個就是 aa,而不是 aa,aa
下面是我用c++實現的**
class solution
for(int i =k;i< str.size();i++)
}public:
vectorpermutation(string str)
};
字串的所有排列 python
在給定乙個字串abc,輸出該字串的所有排列組合 abc acb bac bca cab cba 遞迴法 class solution def permutation self,ss if len ss 1 return ss res set for i in range len ss 每乙個j是pe...
列印字串的所有排列
輸入乙個字串,列印出該字串中字元的所有排列。你可以以任意順序返回這個字串陣列,但裡面不能有重複元素。示例 輸入 s abc 輸出 abc acb bac bca cab cba 限制 1 s 的長度 8 public static string permutation string s return...
字串陣列所有排列,找指定串位置
字串陣列seq a,b,c,d,aa,ba,ca,da,ab,bb,cb,db,ac.aaa,aba,1 aaa是第幾個字串 2 ababacd是第幾個 3 第1000個字串是什麼 4 編寫函式find 返回字串在seq中是第幾個 語言不限 分析 1 長度,很容易推導出長度是n的字串在第4 n 1 ...