rendered paste bodypublic class PowerSet
{
public static void main( String args[] ) {
if( args.length > 0 ) {
TreeSet fin = generate( args, 0 );
Iterator iter = fin.iterator();
System.out.print( "{ \"\", " );
do {
System.out.print( iter.next() );
if( iter.hasNext() ) {
System.out.print( ", " );
} else {
System.out.println( " }" );
}
} while( iter.hasNext() );
} else {
System.out.println( "{ \"\" }" );
}
}
private static TreeSet generate( String args[], int index ) {
if( index + 1 == args.length ) {
TreeSet temp = new TreeSet();
temp.add( args[ index ] );
return temp;
} else {
TreeSet initial = generate( args, index + 1 );
TreeSet result = new TreeSet( new PowerComparator() );
result.add( args[ index ] );
Iterator iter = initial.iterator();
while( iter.hasNext() ) {
String string = ( String )( iter.next() );
result.add( string );
result.add( args[ index ] + string );
}
return result;
}
}
} // PowerSet