287 lines
2.8 KiB
C
287 lines
2.8 KiB
C
|
/*
|
||
|
* C Program to find the possible subsets of the String
|
||
|
*/
|
||
|
#include <stdio.h>
|
||
|
|
||
|
char string[50], n;
|
||
|
void subset(int, int, int);
|
||
|
|
||
|
int main()
|
||
|
{
|
||
|
int i, len;
|
||
|
printf("Enter the len of main set : ");
|
||
|
scanf("%d", &len);
|
||
|
printf("Enter the elements of main set : ");
|
||
|
scanf("%s", string);
|
||
|
n = len;
|
||
|
printf("The subsets are :\n");
|
||
|
for (i = 1; i <= n; i++)
|
||
|
subset(0, 0, i);
|
||
|
}
|
||
|
|
||
|
/*Function to find the number of subsets in the given string*/
|
||
|
|
||
|
void subset(int start, int index, int num_sub)
|
||
|
{
|
||
|
int i, j;
|
||
|
if (index - start + 1 == num_sub)
|
||
|
{
|
||
|
if (num_sub == 1)
|
||
|
{
|
||
|
for (i = 0; i < n; i++)
|
||
|
printf("%c\n", string[i]);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
for (j = index; j < n; j++)
|
||
|
{
|
||
|
for (i = start; i < index; i++)
|
||
|
printf("%c", string[i]);
|
||
|
printf("%c\n", string[j]);
|
||
|
}
|
||
|
if (start != n - num_sub)
|
||
|
subset(start + 1, start + 1, num_sub);
|
||
|
}
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
subset(start, index + 1, num_sub);
|
||
|
}
|
||
|
}
|
||
|
/*
|
||
|
*OUTPUT:
|
||
|
Enter the len of main set : 11
|
||
|
Enter the elements of main set : programming
|
||
|
The subsets are :
|
||
|
p
|
||
|
r
|
||
|
o
|
||
|
g
|
||
|
r
|
||
|
a
|
||
|
m
|
||
|
m
|
||
|
i
|
||
|
n
|
||
|
g
|
||
|
pr
|
||
|
po
|
||
|
pg
|
||
|
pr
|
||
|
pa
|
||
|
pm
|
||
|
pm
|
||
|
pi
|
||
|
pn
|
||
|
pg
|
||
|
ro
|
||
|
rg
|
||
|
rr
|
||
|
ra
|
||
|
rm
|
||
|
rm
|
||
|
ri
|
||
|
rn
|
||
|
rg
|
||
|
og
|
||
|
or
|
||
|
oa
|
||
|
om
|
||
|
om
|
||
|
oi
|
||
|
on
|
||
|
og
|
||
|
gr
|
||
|
ga
|
||
|
gm
|
||
|
gm
|
||
|
gi
|
||
|
gn
|
||
|
gg
|
||
|
ra
|
||
|
rm
|
||
|
rm
|
||
|
ri
|
||
|
rn
|
||
|
rg
|
||
|
am
|
||
|
am
|
||
|
ai
|
||
|
an
|
||
|
ag
|
||
|
mm
|
||
|
mi
|
||
|
mn
|
||
|
mg
|
||
|
mi
|
||
|
mn
|
||
|
mg
|
||
|
in
|
||
|
ig
|
||
|
ng
|
||
|
pro
|
||
|
prg
|
||
|
prr
|
||
|
pra
|
||
|
prm
|
||
|
prm
|
||
|
pri
|
||
|
prn
|
||
|
prg
|
||
|
rog
|
||
|
ror
|
||
|
roa
|
||
|
rom
|
||
|
rom
|
||
|
roi
|
||
|
ron
|
||
|
rog
|
||
|
ogr
|
||
|
oga
|
||
|
ogm
|
||
|
ogm
|
||
|
ogi
|
||
|
ogn
|
||
|
ogg
|
||
|
gra
|
||
|
grm
|
||
|
grm
|
||
|
gri
|
||
|
grn
|
||
|
grg
|
||
|
ram
|
||
|
ram
|
||
|
rai
|
||
|
ran
|
||
|
rag
|
||
|
amm
|
||
|
ami
|
||
|
amn
|
||
|
amg
|
||
|
mmi
|
||
|
mmn
|
||
|
mmg
|
||
|
min
|
||
|
mig
|
||
|
ing
|
||
|
prog
|
||
|
pror
|
||
|
proa
|
||
|
prom
|
||
|
prom
|
||
|
proi
|
||
|
pron
|
||
|
prog
|
||
|
rogr
|
||
|
roga
|
||
|
rogm
|
||
|
rogm
|
||
|
rogi
|
||
|
rogn
|
||
|
rogg
|
||
|
ogra
|
||
|
ogrm
|
||
|
ogrm
|
||
|
ogri
|
||
|
ogrn
|
||
|
ogrg
|
||
|
gram
|
||
|
gram
|
||
|
grai
|
||
|
gran
|
||
|
grag
|
||
|
ramm
|
||
|
rami
|
||
|
ramn
|
||
|
ramg
|
||
|
ammi
|
||
|
ammn
|
||
|
ammg
|
||
|
mmin
|
||
|
mmig
|
||
|
ming
|
||
|
progr
|
||
|
proga
|
||
|
progm
|
||
|
progm
|
||
|
progi
|
||
|
progn
|
||
|
progg
|
||
|
rogra
|
||
|
rogrm
|
||
|
rogrm
|
||
|
rogri
|
||
|
rogrn
|
||
|
rogrg
|
||
|
ogram
|
||
|
ogram
|
||
|
ograi
|
||
|
ogran
|
||
|
ograg
|
||
|
gramm
|
||
|
grami
|
||
|
gramn
|
||
|
gramg
|
||
|
rammi
|
||
|
rammn
|
||
|
rammg
|
||
|
ammin
|
||
|
ammig
|
||
|
mming
|
||
|
progra
|
||
|
progrm
|
||
|
progrm
|
||
|
progri
|
||
|
progrn
|
||
|
progrg
|
||
|
rogram
|
||
|
rogram
|
||
|
rograi
|
||
|
rogran
|
||
|
rograg
|
||
|
ogramm
|
||
|
ogrami
|
||
|
ogramn
|
||
|
ogramg
|
||
|
grammi
|
||
|
grammn
|
||
|
grammg
|
||
|
rammin
|
||
|
rammig
|
||
|
amming
|
||
|
program
|
||
|
program
|
||
|
prograi
|
||
|
progran
|
||
|
prograg
|
||
|
rogramm
|
||
|
rogrami
|
||
|
rogramn
|
||
|
rogramg
|
||
|
ogrammi
|
||
|
ogrammn
|
||
|
ogrammg
|
||
|
grammin
|
||
|
grammig
|
||
|
ramming
|
||
|
programm
|
||
|
programi
|
||
|
programn
|
||
|
programg
|
||
|
rogrammi
|
||
|
rogrammn
|
||
|
rogrammg
|
||
|
ogrammin
|
||
|
ogrammig
|
||
|
gramming
|
||
|
programmi
|
||
|
programmn
|
||
|
programmg
|
||
|
rogrammin
|
||
|
rogrammig
|
||
|
ogramming
|
||
|
programmin
|
||
|
programmig
|
||
|
rogramming
|
||
|
programming
|
||
|
*/
|