JAVA----编程列出一个字符串的全字符组合情况,原始字符串中没有重复字符

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

packagecom.pb.demo.packclass.demo1;importjava.util.HashSet;/*** 编程列出一个字符串的全字符组合情况,原始字符串中没有重复字符

例如:

原始字符串是"abc",打印得到下列所有组合情况

"a" "b" "c"

"ab" "bc" "ca" "ba" "cb" "ac"

"abc" "acb" "bac" "bca" "cab" "cba"

*@authorDenny

* 思路:

* 1.截取字符串,每次载取一个

* 2.把截取到的一个做的前缀,添加到集合中

* 3.和剩下的组合

* 4.长度为1时,用前缀和剩下的组合添加到集合

* 5.使用递归

**/publicclassDemo9 {staticHashSet<String> set=newHashSet<String>();publicstaticvoidmain(String[] args) {

String s="abc";

getString(s,"");

System.out.PRintln(set);

System.out.println(set.size());

}publicstaticvoidgetString(String s,String pre){if(s.length()==1){

set.add(pre+s);return;

}else{for(inti = 0; i < s.length(); i++) {

StringBuilder sb=newStringBuilder(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

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航