剑指offer--38字符串的排列

Posted Anrys

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指offer--38字符串的排列相关的知识,希望对你有一定的参考价值。

剑指offer--38字符串的排列

题目

代码

class Solution 
    public String[] permutation(String s) 
        List<String> list = new ArrayList();
        char[] arr = s.toCharArray();
        StringBuilder sb = new StringBuilder();
        boolean[] visited = new boolean[arr.length];
        dfs(arr, "", visited, list);
        //new String[0]只能填0,代表类型的规定,其他的数就限定了输出的维度,java8如此
        return list.toArray(new String[0]);
    
    public void dfs(char[] arr, String s,  boolean[] visited, List list)
    
        if(s.length() == arr.length)
        
            list.add(s);
            return;
        
        for(int i=0; i<arr.length; i++)
        
            if(visited[i]) continue;
            visited[i] = true;
            dfs(arr, s+String.valueOf(arr[i]), visited, list);
            visited[i] = false;  //回溯
        

    

结果

以上是关于剑指offer--38字符串的排列的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 字符串的排列全排列问题(剑指offer38)

剑指 Offer 38. 字符串的排列

剑指 Offer 38. 字符串的排列

算法剑指 Offer 38. 字符串的排列 重刷

LeetCode 剑指 Offer 38. 字符串的排列 / 31. 下一个排列 / 第 246 场周赛

剑指Offer 38 - 字符串的排列