Contact Learn C
Copy Program Share Program

Program 328:Find Subsets of Given String

Find Subsets of Given String
Method I:Can find substring for any length of string because we are taking binary number as string while Conversion itself
#include<stdio.h>
#include<string.h>
#include<math.h>
char *GetBinary(int dec);
int main()
{
 int i,j,len,count=0,noofzeros;
 char str[20],temp[20],binary[20];
 printf("Enter a string\n");
 gets(str);
 len=strlen(str);
 printf("Subsets of Given String are");
 for(i=0;i<(pow(2,len));i++)//2^len is the number of subsets for given length.
 {
  strcpy(binary,GetBinary(i));
  noofzeros=len-strlen(binary);//Since zeros will not be there before single digits and double etc depending on length of binary number.
  //To compensate them we used here
  for(j=0;j<len;j++)
  {
   if(j>=noofzeros)
   {
    if(binary[j-noofzeros]!='0')
       printf("%c",str[j]);
   }
  }
  printf("\n");
 }
 return(0);
}

char *GetBinary(int dec)
{
 int temp,i,j=1,k=0;
 char binary[20];
 temp=dec;
 while(temp!=0)
 {
   i=temp%2;
      binary[k]=i+'0';
   temp=temp/2;
      j=j*10;
      k++;
 }
 binary[k]='\0';
 return(strrev(binary));
}

Method II:Can find subsets for smaller strings as we are taking binary number as integer
#include<stdio.h>
#include<string.h>
#include<math.h>
int GetBinary(int dec);
main()
{
 int i,j,binary,len,count=0,tempLen;
 char str[20],temp[20];
 printf("Enter a string\n");
 gets(str);
 len=strlen(str);
 for(i=1;i<(pow(2,len));i++)//2^len is the number of subsets for given length
 {
  binary=GetBinary(i);
  sprintf(temp, "%d", binary);//To convert integer to string
  tempLen=len-strlen(temp);
  for(j=0;j<len;j++)
  {
   if(j>=tempLen)
   {
    if(temp[j-tempLen]!='0')
       printf("%c",str[j]);
   }
  }
  printf("\n");
 }
}

int GetBinary(int dec)
{
 int temp,i,j=1,binary=0;
 temp=dec;
 while(temp!=0)
 {
   i=temp%2;
      binary=binary+(i*j);
   temp=temp/2;
      j=j*10;
 }
 return(binary);
}
Explanation:
Example for Subsets of string Tea is
000-Nothing is printed
001-a
010-e
011-ea
100-T
101-Ta
110-Te
111-Tea

So its nothing but
T,
e
a
Te
Ta
ea
Tea

Similarly Help
H
e
l
p
He
Hl
Hp
el
ep
lp
Hel
Hep
Hlp
elp
Help

//Coming Soon...

Output:
Find Subsets of Given String

Find Subsets of  Given String


Find Subsets of Given String



No comments:

Post a Comment

Donate

Download App and Learn when ever you want

Get it on PlayStore
Get it on Amazon App Store
Get it on Aptoide