문자열의 모든 하위 집합 목록에 프로그램을 작성하고 있습니다. 내 프로그램 (아래에 있음)은 "abcd"의 하위 집합을 다음 순서로 나열합니다.이 하위 집합의 순서는 무엇입니까?
'' 'd' 'c' 'cd' 'b' 'bd' 'bc' 'bcd' 'a' 'ad' 'ac' 'acd' 'ab' 'abd' 'abc' 'abcd'
올바른 내용입니다. 그러나, 레퍼런스 솔루션은 그들을 순서대로 나열
'' 'a' 'b' 'ab' 'c' 'ac' 'bc' 'abc' 'd' 'ad' 'bd' 'abd' 'cd' 'acd' 'bcd' 'abcd'
내 질문은 : 이 순서의 이름은 무엇인가?
이 참고로, 여기 내 프로그램입니다 :
import java.util.ArrayList;
import java.util.Collections;
/**
This class generates subsets of a string.
*/
public class SubsetGenerator
{
public static ArrayList<String> getSubsets(String word)
{
ArrayList<String> result = new ArrayList<String>();
//fill out
//result.add("");
if(word.length() == 0)
{
result.add("");
}
else
{
String notFirst = word.substring(1);
ArrayList<String> smaller = getSubsets(notFirst);
//System.out.println(smaller);
char first = word.charAt(0);
result.addAll(smaller);
for(String i: smaller)
{
result.add(first+i);
}
}
//simpleSubsets = getSubsets(simple+word.charAt(0));
// Form a simpler word by removing the first character
// fill out
// Generate all subsets of the simpler word
// fill out
// Add the removed character to the front of
// each subset of the simpler word, and
// also include the word without the removed character
// fill out
// Return all subsets
return result;
}
}
구체적인 순서는 무엇입니까? 당신의 결과는 무엇을 의미합니까? 올바른 출력 결과가 올바른 이유는 무엇입니까? –