字符串的排列

class Solution {
    //全排列问题
    Set<List<Character>> res = new HashSet<>();
    public String[] permutation(String s) {
    char []strs =  s.toCharArray();
    int len = strs.length;
    boolean []used = new boolean[len];
    LinkedList<Character> list = new LinkedList<>();
    dfs(0,used,list,strs);
    String[] result = new String[res.size()];
    int top=0;
    for(List<Character> elem : res){
        String tmp = "";
      LinkedList<Character> e =  (LinkedList<Character>)elem;
      for(int i=0;i<len;i++){
          tmp+=e.get(i)+"";
      }
      result[top++] = tmp;
    }
    return result;
    }
    void dfs(int u,boolean []used,LinkedList list,char[] strs){
        if(u == strs.length){
            res.add(new LinkedList<>(list));
            return;
        }
        for(int i=0;i<strs.length;i++){
            if(!used[i]){
                used[i] = true;
                list.add(strs[i]);
                dfs(u+1,used,list,strs);
                used[i] = false;
                list.removeLast();

            }
        }
    }


}

posted @   浅滩浅  阅读(84)  评论(0编辑  收藏  举报
编辑推荐:
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
阅读排行:
· 如何给本地部署的DeepSeek投喂数据,让他更懂你
· 超详细,DeepSeek 接入PyCharm实现AI编程!(支持本地部署DeepSeek及官方Dee
· 用 DeepSeek 给对象做个网站,她一定感动坏了
· .NET 8.0 + Linux 香橙派,实现高效的 IoT 数据采集与控制解决方案
· .NET中 泛型 + 依赖注入 的实现与应用
历史上的今天:
2019-07-26 信用卡号验证
2019-07-26 通过递归创建链表
2019-07-26 构建乘积数组
2019-07-26 整数转化为2进制补码(双指针的一种变形)
2019-07-26 二进制中1的个数
点击右上角即可分享
微信分享提示