本文主要是介绍【剑指offer系列】38-输入abc输出a、b、c、ab、ac、bc、abc(关键字:通过StringBuilder的setLength()实现回溯),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
输入描述
abc
输出描述
a
b
c
ab
ac
bc
abc
class Main38{private static ArrayList<String> permutation(String str){ArrayList<String> list = new ArrayList<>();if (str == null || str.length() == 0)return list;StringBuilder sb = new StringBuilder(str.length());char[] ch = str.trim().toCharArray();printStr(ch,list,sb,0);return list;}private static void printStr(char[] ch, ArrayList<String> list, StringBuilder sb, int start){for (int i = start; i < ch.length; i++){sb.append(ch[i]);list.add(sb.toString());//处理if (i < ch.length - 1)printStr(ch,list ,sb ,i+1 );sb.setLength(sb.length()-1);}}public static void main(String[] args){ArrayList<String> list = permutation("abc");Collections.sort(list,(o1, o2) -> {return o1.length()-o2.length();});for (String s : list){System.out.println(s);}}
}
这篇关于【剑指offer系列】38-输入abc输出a、b、c、ab、ac、bc、abc(关键字:通过StringBuilder的setLength()实现回溯)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!