Aprioriアルゴリズムは配列の非空のサブセットjavaコードを求めます
2203 ワード
Aprioriアルゴリズムは集合の非空のサブセットjavaコードを求めます
public class Test {
public static void main(String[] args) {
String str="abcd" ;
// Set
Set<String> set = new HashSet<String>();
// a a b c a c
for(int i=0 ; i<str.length() ; i++){
//
for(int k= i ; k<str.length() ; k++){
//
String res = str.substring(i , k+1);
//
if(res ==str) continue ;
set.add(res);
}
}
//
for(String s : set){
System.out.println(s);
}
}
}
public class Test {
/**
*
*/
public List<String> printAllSubsets(String[] array) {
if (null == array || 0 == array.length) {
throw new IllegalArgumentException(" Null, ");
}
int len = array.length;
List<String> stringList = new LinkedList<String>();
int allMasks = 1 << len;
//
for (int i = 1; i < allMasks; i++) {
if (i == allMasks - 1) break;
StringBuilder s = new StringBuilder();
for (int j = 0; j < len; j++)
if ((i & (1 << j)) > 0) {
s.append(array[j]);
}
stringList.add(s.toString());
}
return stringList;
}
public static void main(String[] args) {
Test exam = new Test();
List<String> stringList = exam.printAllSubsets(new String[]{"aa", "bb", "ce", "dh"});
for (String s : stringList) {
System.out.println(s);
}
}
}