import java.util.ArrayList;
import java.util.List;
public class RangeNumber
{
private char[] numbers; //输入的字符数组
private List<String> list;//返回的全排列字符串数组
private String regex; //过滤相邻字符串的正则式
public RangeNumber(char[] numbers,char[] notNear)
{
this.numbers = numbers;
StringBuilder sb = new StringBuilder();
sb.append("\\d*");
for(int i=0;i<notNear.length;i++)
{
sb.append("[");
sb.append(String.valueOf(notNear));
sb.append("]");
}
sb.append("\\d*");
regex = sb.toString();
System.out.println(regex);
}
public List range()
{
list = new ArrayList<String>();
int m,n;
m = 0;
n = numbers.length;
permutation(m,n);
return list;
}
/**
* 后补法全排算法
* @param m 数组游标
* @param n 字符串的长度
*/
private void permutation(int m, int n)
{
int i;
char t;
if (m<n-1)
{
permutation(m+1, n);
for (i=m+1;i<n;i++) {
t=numbers[m];
numbers[m]=numbers[i];
numbers[i]=t;
permutation(m+1, n);
t=numbers[m];
numbers[m]=numbers[i];
numbers[i]=t;
}
}
else
{
String value = String.valueOf(numbers);
if(!value.matches(regex))
{
list.add(value);
}
}
}
}
分享到:
相关推荐
堆排序算法 java
基数排序算法 java实现 还有基数排序的原理文档
java实现的常用的几种基本排序算法,插入、交换、选择、归并
实现合并排序,插入排序,希尔排序,快速排序,冒泡排序,桶排序算法的java实现。
各种排序算法java实现,里面的代码可以直接执行使用
插入排序算法java代码,望对大家有帮助
这本书是用java讲数据结构和排序算法的,全书只有44页,但是讲的内容很不错,推荐学习或者复习数据结构的童鞋下在看看!
java的堆排序算法实现程序,含测试,可直接运行。java的堆排序算法实现程序,含测试,可直接运行。
各种排序算法 JAVA代码实现 所有排序算法 JAVA代码实现
java排序算法使用及场景说明 文档后面有一些别人的链接,多在google上搜索Java排序算法,及维基百科上面也有很全的算法介绍。
提供冒泡 快速 插入 选择 排序算法java源代码及测试程序
各类排序算法java的实现.CHM 各类排序算法java的实现.CHM
一个简单的快速排序算法,用JAVA编写的
关于各种排序算法的图形演示,做得很不错
Java排序算法 Java排序算法.rar
LZ4压缩算法java实现 LZ4压缩算法是lossless压缩算法,提供了高达500 MB/s每个核心的压缩速度,且可以根据多核CPU进行扩展。它具有极快的解压速度,速度可达多GB/s每个核心,通常达到多核系统中的RAM速度限制。速度...
各类排序算法java的实现,推荐给大家看看
Java所有排序算法大全 Java所有排序算法大全 Java所有排序算法大全 Java所有排序算法大全
排序算法 Java经典算法