package com.pb.demo.packclass.demo1;import java.util.HashSet;/** * 編程列出一個字符串的全字符組合情況,原始字符串中沒有重復字符例如:原始字符串是"abc",打印得到下列所有組合情況"a" "b" "c" "ab" "bc" "ca" "ba" "cb" "ac""abc" "acb" "bac" "bca" "cab" "cba" * @author Denny * 思路: * 1.截取字符串,每次載取一個 * 2.把截取到的一個做的前綴,添加到集合中 * 3.和剩下的組合 * 4.長度為1時,用前綴和剩下的組合添加到集合 * 5.使用遞歸 * */public class Demo9 { static HashSet<String> set=new HashSet<String>(); public static void main(String[] args) { String s="abc"; getString(s,""); System.out.PRintln(set); System.out.println(set.size()); } public static void getString(String s,String pre){ if(s.length()==1){ set.add(pre+s); return; }else{ for (int i = 0; i < s.length(); i++) { StringBuilder sb=new StringBuilder(s); String str=pre+s.substring(i, i+1); set.add(str); getString(sb.deleteCharAt(i).toString(),str); } } }}
結果:
[a, ab, acb, bc, bca, ac, b, abc, c, cba, bac, cab, ca, ba, cb]
15
新聞熱點
疑難解答