剑指offer--38字符串的排列
Posted Anrys
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指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(剑指 Offer)- 38. 字符串的排列