字符串全排列问题
2015-08-19 15:04
393 查看
全排列问题:给定字符串 abc,全排列为:abc, acb, bac, bca, cab, cba
递归实现:
1、标记访问状态数组 val,当前所保存的字符串对象 tmp,保存结果数组 res;
2、思路:
(2.1)每次从 0 到 str.length() - 1,选择未被访问的字符加入到 tmp 中,标记当前字符为已访问;
(2.2)往后递归;
(2.3)当所有的字符都被访问过时,加入到 res 数组中;
递归实现:
1、标记访问状态数组 val,当前所保存的字符串对象 tmp,保存结果数组 res;
2、思路:
(2.1)每次从 0 到 str.length() - 1,选择未被访问的字符加入到 tmp 中,标记当前字符为已访问;
(2.2)往后递归;
(2.3)当所有的字符都被访问过时,加入到 res 数组中;
/** * 输入一个字符串,打印出该字符串中字符的所有排列 (递归) * @param str * @param tmp * @param val */ public void permutations(String str, String tmp, int[] val) { int j = 0 ; for(j = 0; j < val.length; j ++) { if(val[j] == 0) { break ; } } if(j == val.length) { res.add(tmp) ; } for(int i = 0; i < str.length(); i ++) { if(val[i] == 0) { tmp += str.charAt(i) ; val[i] = 1 ; permutations(str, tmp, val) ; val[i] = 0 ; tmp = tmp.substring(0, tmp.length() - 1) ; } } }
相关文章推荐
- VMware虚拟机PXE安装RHEL6.4
- ECSHOP模板制作教程,ECSHOP标签大全,ECSHOP模板标签
- 数据结构 C语言实现冒泡排序
- linux下常用命令及功能
- 开发笔记-Linux-Apache-PHP-CI
- codeforces 515B B. Drazil and His Happy Friends(模拟)
- 初学node---1
- Huffman树及其应用
- 电脑经验--bois用pe进不去,更改UEFI
- 纯fragment布局实现tab
- Antenna Placement(POJ_3020)
- java序列化的机制和原理
- Java中super的使用
- 电脑经验--20140325 jre 考勤无法登陆
- PopupWindow
- AngularJS 从入门到精通(过滤器(Filter) )
- HDU 1814 Peaceful Commission (2-SAT)
- House Robber II
- Nginx发布1.9.0版本,新增支持TCP代理和负载均衡的stream模块
- Communication System(dp)