字符串的排列java实现
2017-09-23 11:18
369 查看
输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。
import java.util.ArrayList; import java.util.Stack; import java.util.TreeSet; public class Solution { public ArrayList<String> Permutation(String str) { TreeSet<String> tree = new TreeSet<String>(); Stack<String[]> stack = new Stack<String[]>(); ArrayList<String> results = new ArrayList<String>(); stack.push(new String[]{str,""}); do{ String[] popStrs = stack.pop(); String oldStr = popStrs[1]; String statckStr = popStrs[0]; for(int i =statckStr.length()-1;i>=0;i--){ String[] strs = new String[]{statckStr.substring(0,i)+statckStr.substring(i+1),oldStr+statckStr.substring(i,i+1)}; if(strs[0].length()==0){ tree.add(strs[1]); }else{ stack.push(strs); } } }while(!stack.isEmpty()); for(String s : tree) results.add(s); return results; } }
相关文章推荐
- 求解一个字符串的所有排列 java实现
- java实现有条件字符串全排列输出
- 剑指Offer:面试题28——字符串的排列(java实现)(待序)
- 字符串数组元素排列与组合的Java递归实现
- JAVA实现abc字符串的排列组合
- java 两种方式实现字符串倒叙排列
- 剑指offer--面试题28:字符串的排列--Java实现
- java实现字符串排列组合问题
- 字符串全排列 Java递归实现
- 字符串排列和组合的JAVA实现
- 字符串排列和组合的JAVA实现 [No. 44]
- 字符串全排列 java实现
- 竖着排列字符串Java实现
- 全排列字符串java实现
- java实现字符串排列组合问题
- 剑指offer面试题28:字符串的排列 Java实现
- 剑指offer--面试题28:字符串的排列--Java实现
- 字符串的排列(Java实现)
- 字符串全排列算法理解与java实现
- 字符串全排列 java实现