Skip to content

Instantly share code, notes, and snippets.

@prasadwrites
Last active August 29, 2015 14:10
Show Gist options
  • Select an option

  • Save prasadwrites/29d9c1ea28d8d8d4af01 to your computer and use it in GitHub Desktop.

Select an option

Save prasadwrites/29d9c1ea28d8d8d4af01 to your computer and use it in GitHub Desktop.
Algoritim to print all combinations of array in order.
package combinations;
import java.util.*;
import java.math.*;
public class combPowerSet {
//printing the charachters as per the number sent.
void printNumber(int number, char [] items)
{
String digitString = Integer.toString(number);
char [] digitStringArray = digitString.toCharArray();
int length = digitStringArray.length;
for ( int i=0; i<length; i++)
{
System.out.print(items[Character.getNumericValue(digitStringArray[i])-1]);
}
System.out.println();
}
//checking if the number follows the required pattern.
boolean checkCondition(int number, int itemSize)
{
boolean validNumber = true;
String digitString = Integer.toString(number);
char [] digitStringArray = digitString.toCharArray();
int length = digitStringArray.length;
for ( int i=0; i<length; i++)
{
for( int j = i+1; j < length; j++)
{
int x = Character.getNumericValue(digitStringArray[i]);
int y = Character.getNumericValue(digitStringArray[j]);
if (x > itemSize-1 || y > itemSize || x > y || x==y)
{
validNumber = false;
break;
}
}
if (validNumber == false) break;
}
return validNumber;
}
void printCombinations(char [] items)
{
double maxDigit = 0;
int itemSize = items.length;
for(int i=1; i<=itemSize; i++)
{
maxDigit = maxDigit + i*Math.pow(10,itemSize-i);
}
for(int x=12; x<=maxDigit; x++)
{
if(checkCondition(x, itemSize))
{
printNumber(x, items);
}
}
}
public static void main(String [] args)
{
char [] arr = { 'a','b', 'c','d', 'e'};
combPowerSet obj = new combPowerSet();
obj.printCombinations(arr);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment