题目描述
输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 结果请按字母顺序输出。
代码如下,java依旧:
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
public class Solution {
HashSet<String> arrangeSet = new HashSet<>();
public void DfsStr(char str[],char sequence[],int step,int strLen,boolean moveFlag[])
{
if(step == strLen)
{
String arrange = new String(sequence);
arrangeSet.add(arrange);
return;
}
for(int i = 0; i < strLen; i++)
{
if(moveFlag[i] == false)
{
sequence[step] = str[i];
moveFlag[i] = true;
DfsStr(str, sequence, step + 1, strLen