java实现有条件字符串全排列输出
来源:互联网 发布:德阳数控铣床编程培训 编辑:程序博客网 时间:2024/05/22 12:26
package edu.pku.ss.hlj;public class Hlj { public static void main(String[] args) { String s = "abcd";//这里是要用到的所有数组成的一个字符串,其它字符同样适用 char[] c = s.toCharArray(); new Hlj().fullPermutation(c,c.length,0); System.out.println("可能的组合数:"+kk); for(char ch : c){ System.out.print(ch +""); } } static int kk=0; /** * 不具字典順序的排列組合產生比較容易,使用一軸心將數字分為兩個部份,並將軸心左邊與右邊的數字依序交換,並繼續將軸心右邊進行递归,例如递归最上層的四個交換如下,!表示軸心: 1 ! 2 3 4 - > 將軸心右邊進行递归 2 ! 1 3 4 - > 將軸心右邊進行递归 3 ! 2 1 4 - > 將軸心右邊進行递归 4 ! 2 3 1 - > 將軸心右邊進行递归 * @param array * @param n * @param k */ private void fullPermutation(char[] array, int n, int k) { if (n == k) {// if(array[2]!='4'){//第三个位置不能出现4// String str = new String(array);// if(str.indexOf("53")<0&&str.indexOf("35")<0){//3,5不能连续出现// System.out.println(str);// ++kk;// }// }// String str = new String(array); System.out.println(array); ++kk; } else { for (int i = k; i < n; i++) { swap(array, k, i); fullPermutation(array, n, k + 1); swap(array, i, k); } } } private void swap(char[] a, int x, int y) { char temp = a[x]; a[x] = a[y]; a[y] = temp; }}
0 0
- java实现有条件字符串全排列输出
- java实现全排列输出
- 全排列字符串java实现
- 字符串全排列 java实现
- 字符串全排列 java实现
- java字符串全排列的实现方式
- 字符串全排列问题 java语言实现
- Java实现字符串的全排列
- [算法学习]Java实现字符串全排列
- Java递归实现字符串全排列
- Java实现的字符串全排列算法
- 输出字符串的全排列
- 输出字符串的全排列
- 输出字符串的全排列
- 输出字符串的全排列
- 实现字符串全排列
- 实现字符串全排列
- JAVA递归和非递归输出字符串的全排列
- 在ListView中如何进行精确的定位
- Linux内核设计的艺术-进程间通信-信号
- NoSQL开篇
- 使用AIDL实现进程间的通信之复杂类型传递 .
- 一个整数数组,长度为n,将其分为m份,使各份的和相等,求m的最大值
- java实现有条件字符串全排列输出
- Cocoa 基本语法
- c:if标签
- 读书入脑的最好方法
- android之OnTouchListener只能监听到ACTION_DOWN-----onTouchListener的返回值问题
- vc 隐藏进程
- IIS 部署MVC相关设置
- 专家详解伪造邮件攻击方法和防范措施
- QT 中的 collect2: ld returned 1 exit status 错误