• Skip to primary navigation
  • Skip to content
  • Skip to primary sidebar
  • Skip to secondary sidebar

GoHired

Interview Questions asked in Google, Microsoft, Amazon

Join WeekEnd Online Batch from 4-April-2020 on How to Crack Coding Interview in Just 10 Weeks : Fees just 20,000 INR

  • Home
  • Best Java Books
  • Algorithm
  • Internship
  • Certificates
  • About Us
  • Contact Us
  • Privacy Policy
  • Array
  • Stack
  • Queue
  • LinkedList
  • DP
  • Strings
  • Tree
  • Mathametical
  • Puzzles
  • Graph

Print Power Set of a Set

April 18, 2015 by Dhaval Dave

Print Power Set of a Set of character.

Power Set Power set P(S) of a set S is the set of all subsets of S. For example S = {a, b, c} then P(s) = {{}, {a}, {b}, {c}, {a,b}, {a, c}, {b, c}, {a, b, c}}.

If S has n elements in it then P(s) will have 2^n elements

 

Method 1:

Input: Set[], set_size
1. Get the size of power set
    powet_set_size = pow(2, set_size)
2  Loop for counter from 0 to pow_set_size
     (a) Loop for i = 0 to set_size
          (i) If ith bit in counter is set
               Print ith element from set for this subset
     (b) Print seperator for subsets i.e., newline

#include <stdio.h>
#include <math.h>
 

voidprintPowerSet(char*set, intset_size)
{
    /*set_size of power set of a set with set_size
      n is (2**n -1)*/
    unsigned intpow_set_size = pow(2, set_size);
    intcounter, j;
    /*Run from counter 000..0 to 111..1*/
    for(counter = 0; counter < pow_set_size; counter++)
    {
      for(j = 0; j < set_size; j++)
       {
          /* Check if jth bit in the counter is set
             If set then pront jth element from set */
          if(counter & (1<<j))
            printf("%c", set[j]);
       }
       printf("n");
    }
}
/*Driver program to test printPowerSet*/
intmain()
{
    charset[] = {'a','b','c'};
    printPowerSet(set, 3);
    getchar();
    return0;
}

Method 2:  We can use Recursion and with understanding of Binary Tree , we can format it.
Example : 

                   {a,b,c} print set= abc
                    / \ 
                   /   \ 
                  /     \ 
               {a,b}    {b,c}  print set = ab,bc
                /\        /\ 
               /  \      /  \ 
              {a}  {b} {b}  {c} print set
          
void printPowerSet(char *set, int l , int h , int size)
{
    int i=l;
    for(i=l;i<=h;i++){printf("%c",set[i]);}
     printf("n");
     if(l+1 < size){ 
          printPowerSet(set,l+1,h,size); 
     } 
     if(h-1 >= 0 ){
            printPowerSet(set,l,h-1,size);
     }
}//printpowerset

int main(void) {
char set[] = {'a','b','c','d'};
printPowerSet(set,0,3,4 );
 
getchar();
 
return 0;
}

I have run it here…
http://ideone.com/e.js/faEPpM

 

 

 

 

Similar Articles

Filed Under: Adobe Interview Questions, Hacker Earth Questions, Interview Questions, problem Tagged With: Array, Recursion, string

Reader Interactions

Primary Sidebar

Join WeekEnd Online/Offline Batch from 4-April-2020 on How to Crack Coding Interview in Just 10 Weeks : Fees just 20,000 INR

Join WeekEnd Online/Offline Batch from 4-April-2020

WhatsApp us

Secondary Sidebar

Custom Search

  • How I cracked AMAZON
  • LeetCode
  • Adobe
  • Amazon
  • Facebook
  • Microsoft
  • Hacker Earth
  • CSE Interview

Top Rated Questions

Length of the longest substring without repeating characters

‘N’ Story Building, with 1,2,3 steps how many ways can a person reach top of building.

Find and print longest consecutive number sequence in a given sequence in O(n)

Calculate price of parking from parking start end time prices

Find if two rectangles overlap

Test Cases for Round Function

Generate largest number arranging a no. of given non negative integer numbers

Get K Max and Delete K Max in stream of incoming integers

Reversal of LinkedList

Microsoft BING Interview Experience

Interfaces in C++ (Abstract Classes in C++)

Count Possible Decodings of a given Digit Sequence

Hackerearth : Counting Subarrays

Wrong Directions given find minimum moves so that he can reach to the destination

Implement LRU Cache

Doubly linked list

DFS (Depth First Search)

Leetcode: Edit Distance

C Program for TAIL command of UNIX

Code Chef PRGIFT Solution

Sort Stack in place

Given a float number convert it into the string WITHOUT using any inbuilt Function

The Magic HackerEarth Nirvana solutions Hiring Challenge

simple sql injection

ADOBE Aptitude C Language Test

Closed Parentheses checker

Flipkart SDET Interview Experience

Adobe Interview Questions 8 month Exp

Subset Sum Problem Dynamic programming

BFS (Breath First Search)

Copyright © 2026 · Genesis Framework · WordPress · Log in