字串的排列與組合 Java 遞迴實現

2021-09-18 03:07:28 字數 1703 閱讀 6034

題目:輸入乙個字串,輸出該字串中字元的所有組合。

例子:輸入:abc,它的組合有:a、b、c、ab、ac、bc、abc

public class 字串子串行 

char chars = str.tochararray();

if(chars.length > 0)else

}public static void printallsubstring(int i, string pre, char chars)

// 如果沒有到最後乙個字元,那麼當前字元有兩種選擇:選擇要 和 選擇不要

printallsubstring(i + 1, pre, chars); // 不要當前字元

printallsubstring(i + 1, pre + string.valueof(chars[i]), chars); // 要當前字元

}// 測試

public static void main(string args)

}

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

舉例:輸入字串 abc,則輸出由字元 a、b、c 所能排列出來的所有字串 abc、acb、bac、bca、cab 和 cba。

public class 字串排列 

char chars = string.tochararray();

if(chars.length > 0)

}// 對i及i以後的字元進行全排列

只需要增加乙個 hashset,用於保證重複字元不會被再次交換。

public class 字串排列_去重 

char chars = string.tochararray();

if(chars.length > 0)

}// 對i及i以後的字元進行全排列

public static void printallsort(int i, char chars)

// 用於保證每次交換的字元不存在重複的字元

字串排列與組合

一 字串的排列 給定乙個字串,如何求出字串的所有排列。解題思路 字串的排列可以拆分成,第乙個字元和後面的字元進行組合而成,只需要變換第乙個字元,然後遞迴求後面的字元的排列即可,等到後面的字元為空的時候就得到一種字元的排列,下面是 實現 str 要排列的字串 pbegin 待排列的字串的起始位置,遞迴...

字串的排列與組合

求字串的排列可以把字串看成兩部分 第一部分為它的第乙個字元,第二部分是後面的所有字元。求字串的全排列的時候,可以用兩步完成 首先求所有可能出現在第乙個位置的字元,即把第乙個字元與後面的所有字元交換。第二步固定第乙個字元,求後面所有字元的排列。從中可以看出是典型的遞迴思路。字串的全排列 public ...

字串的排列與組合

字串的全排列 題目 輸入乙個字串,按字典序列印出該字串中字元的所有排列。例如輸入字串abc,則列印出由字元a,b,c所能排列出來的所有字串abc,acb,bac,bca,cab和cba。分析 對於這個問題可以把字串分成兩個部分,一部分是字串的第乙個字元,另一部分是剩餘部分。即就是兩個步驟,1 求後面...