剑指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字符串的排列的主要内容,如果未能解决你的问题,请参考以下文章

剑指 Offer 38. 字符串的排列

LeetCode(剑指 Offer)- 38. 字符串的排列

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

剑指 Offer 38. 字符串的排列

击败时间100%剑指 Offer 38. 字符串的排列

击败时间100%剑指 Offer 38. 字符串的排列