題目:輸入一個字串,輸出該字串中字元的所有組合。舉個例子,如果輸入abc,它的組合有a、b、c、ab、ac、bc、abc。
阿新 • • 發佈:2019-02-13
題目:輸入一個字串,輸出該字串中字元的所有組合。舉個例子,如果輸入abc,它的組合有a、b、c、ab、ac、bc、abc。
/* * AllQ.java 2011-10-23 * Copyright 2010 - 2011 */ package java_string; /*字串的所有組合*/ public class AllQ { /** * @param args */ public static void combination(String str, int index, int number, StringBuilder sb) { if (number == -1 ) { System.out.println(sb.toString()); return; } if (index == str.length()) return; sb.append(str.charAt(index)); combination(str, index + 1, number - 1, sb); sb.deleteCharAt(sb.length() - 1); combination(str, index + 1, number, sb); } public static void combine(String str) { if (str == null) return; int length = str.length(); StringBuilder sb = new StringBuilder(); for (int i = 0; i < length; i++) { combination(str, 0, i, sb); } } public static void main(String[] args) { // TODO Auto-generated method stub combine("abcd"); } }