算法 输出字符串字符的任意组合
编程列出一个字符串的全字符组合情况,原始字符串中没有重复字符,例如:
原始字符串是"abc",打印得到下列所有组合情况:
"a" "b" "c"
"ab" "bc" "ca" "ba" "cb" "ac"
"abc" "acb" "bac" "bca" "cab" "cba"
import java.util.ArrayList; import java.util.List; public class test { static char[] chars = "abc".toCharArray(); public static void main(String[] args) { for (int i = 0; i < chars.length; i++) { // 取得每一个字符 List<Integer> list = new ArrayList<Integer>(); list.add(i); play(list); } } // 使用递归,每次加上列表中不存在的一个字符 private static void play(List<Integer> list) { print(list); for (int i = 0; i < chars.length; i++) { if (!list.contains(i)) { List<Integer> temp = new ArrayList<Integer>(list); temp.add(i); play(temp); } } } // 打印列表内容 private static void print(List<Integer> list) { for (Integer i : list) System.out.print(chars[i] + ""); System.out.println(); } }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。