题解 | #字符串的排列#

字符串的排列

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

import java.util.*;

public class Solution {
    public ArrayList<String> Permutation(String str) {
       ArrayList<String> res = new ArrayList<>();
       dfs(0, str.length(), str.toCharArray(), new boolean[str.length()], new StringBuilder(), res);
       return res;
    }

    public void dfs(int k, int n, char[] cc, boolean[] visited, StringBuilder sb, ArrayList<String> res){
        if(k == n){
            if(!res.contains(sb.toString())){
                res.add(sb.toString());
            }
            return;
        }

        for(int i = 0; i < n; ++i){
            if(!visited[i]){
                sb.append(cc[i]);
                visited[i] = true;
                dfs(k + 1, n, cc, visited, sb, res);
                visited[i] = false;
                sb.deleteCharAt(sb.length() - 1);
            }
        }
    }
}
全部评论

相关推荐

2025-12-19 15:04
门头沟学院 Java
小肥罗:hr爱上你了,你负责吗哈哈
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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