字符串的排列
来源:互联网 发布:网络刷手兼职辨别真假 编辑:程序博客网 时间:2024/06/08 16:14
题目:输入一个字符串,打印出该字符串中字符的所有排列。
例如输入字符串abc,则输出由字符a、b、c 所能排列出来的所有字符串
例如输入字符串abc,则输出由字符a、b、c 所能排列出来的所有字符串
abc、acb、bac、bca、cab 和cba。
/*思路:考察递归
* / abc(1,1)
* abc(0,0)\ acb(1,2)
* / bac(1,1)
* / /
*abc --bac(0,1)\bca(1,2)
* \
* \ /cba(1,1)
* cba(0,2)\cab(1,2)
**/
代码如下:
/** * @PLA 字符串的排列 * 题目:输入一个字符串,打印出该字符串中字符的所有排列。 例如输入字符串abc,则输出由字符a、b、c 所能排列出来的所有字符串 abc、acb、bac、bca、cab 和cba。 *//*思路:考察递归 * /abc(1,1) * abc(0,0)\acb(1,2) * / bac(1,1) * / / *abc --bac(0,1)\bca(1,2) * \ * \ /cba(1,1) * cba(0,2)\cab(1,2) **/public class permutation {void swap(String[] str, int k, int begin) {String temp = null;temp = str[k];str[k] = str[begin];str[begin] = temp;}void getPermutation(String[] str, int begin, int end) {if (begin == end - 1) {System.out.println("-----------------");for (String s : str) {System.out.println(s);}} else {for (int k = begin; k < end; k++) {swap(str, k, begin);getPermutation(str, begin + 1, end);swap(str, begin, k);}}}public static void main(String[] args) {String[] str = new String[] { "a", "b", "c" };int begin = 0, end = str.length;permutation p = new permutation();p.getPermutation(str, begin, end);}}运行结果:
-----------------abc-----------------acb-----------------bac-----------------bca-----------------cba-----------------cab
0 0
- 字符串的全排列
- 字符串的全排列
- 转载 字符串的排列
- 字符串的排列--总结
- 字符串的排列
- 字符串的全排列
- 字符串的排列
- 53.字符串的排列
- 字符串的全排列
- 字符串的全排列
- 字符串的全排列
- 字符串的全排列
- 字符串的排列
- 字符串的排列
- 字符串的排列
- 字符串的倒序排列
- 字符串的全排列
- 字符串的排列
- 网络流hdu4888(多校联合)
- 浅谈 Python 的 with 语句
- HDU 1988 Cube Stacking (数据结构-并查集)
- Mysql学习笔记一
- ibatis配置(mysql数据库) 新增一条记录后,返回自动增长的主键id
- 字符串的排列
- Eclipse快捷键-方便查找
- 移动平台商家支付宝攻略
- windows XP下10.2.01 升级到10.2.0.4
- 推荐10款免费而优秀的图表插件
- 为什么我的/dev/下没有event0
- 从零开始学Xamarin.Forms(二) 环境搭建、创建项目
- BZOJ 1639: [Usaco2007 Mar]Monthly Expense 月度开支
- Logback和log4j