题解 | #字符串的排列#

字符串的排列

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

每日简单代码,简短代码

import java.util.*;
public class Solution {
    
    

    public ArrayList<String> Permutation(String str) {
        char[] arr = str.toCharArray();
        Arrays.sort(arr);
        boolean[] st = new boolean[str.length()];
        ArrayList<String> ans = new ArrayList<>();
        dfs(arr, st, ans, "");
        return ans;
    }
    private void dfs(char[] arr, boolean[] st, ArrayList<String> ans, String temp) {
        if (temp.length() == arr.length) {
            ans.add(temp);
            return;
        }
        HashSet<Character> set = new HashSet<>();
        for (int i = 0; i < arr.length; i ++ ) {
            if (st[i]) continue;
            if (set.contains(arr[i])) continue;
            set.add(arr[i]);
            st[i] = true;
            dfs(arr, st, ans, temp + arr[i]);
            st[i] = false;
        }
    }
}

全部评论

相关推荐

仁者伍敌:牛子这些人还会点一个自动回复,boss都不带回复的
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-07 14:00
不想多说了,什么逆天HR,还要教我礼貌😂
机械打工仔:这不纯傻卵吗,他还操心上别人老板了
投递BOSS直聘等公司7个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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