题解 | #字符串排列#

字符串的排列

http://www.nowcoder.com/practice/fe6b651b66ae47d7acce78ffdd9a96c7

import java.util.*;
public class Solution {
    public ArrayList<String> Permutation(String str) {
        ArrayList<String> list=new ArrayList();//结果集
        boolean flag[]=new boolean[str.length()];//每个字符的标记,是否用过       
            dfs(list,str,"",flag);     
        Collections.sort(list);//排序
        return list;
    }
    public void dfs(ArrayList<String> list,String s,String res,boolean array[]){
        if(res.length()==s.length()){
            if(!list.contains(res)){//判断是否重复
                list.add(res);
            }
            return;
        }
        for(int i=0;i<s.length();i++){
            if(!array[i]){
           array[i]=true;
            dfs(list,s,res+s.charAt(i),array);//递归
                array[i]=false;//回溯
        }
    }
}}
全部评论

相关推荐

03-26 12:00
已编辑
门头沟学院 Java
offer魅魔_oc...:100-200每天,你还要倒贴100
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务