Sunday 1 October 2017

Java program that outputs all possible strings formed by using the characters 'c', 'a', 't', 'd', 'o', and 'g' exactly once.

Problem:

Write a short Java program that outputs all possible strings formed by using the
characters 'c', 'a', 't', 'd', 'o', and 'g' exactly once.

Solution:

package com.basics;

public class PossibleStrings {

static char[] characters = {'c','a','t','d','o','g'};

public static void main(String[] args) {
    printPermutation(characters, 0, characters.length);
}

private static void printPermutation(char[] a, int startIndex, int endIndex) {
    if (startIndex == endIndex)//reached end of recursion, print the state of a
        System.out.println(new String(a));
    else {
        //try to move the swap window from start index to end index
        //i.e 0 to a.length-1
        for (int x = startIndex; x < endIndex; x++) {
            swap(a, startIndex, x);
            printPermutation(a, startIndex + 1, endIndex);
            swap(a, startIndex, x);
        }
    }
}

private static void swap(char[] a, int i, int x) {
    char t = a[i];
    a[i] = a[x];
    a[x] = t;
}

}


Output:

catdog
catdgo
catodg
catogd
catgod
catgdo
cadtog
cadtgo
cadotg
cadogt
cadgot
cadgto
caodtg
caodgt
caotdg
caotgd
caogtd
caogdt
cagdot
cagdto
cagodt
cagotd
cagtod
cagtdo
ctadog
ctadgo
ctaodg
ctaogd
ctagod
ctagdo
ctdaog
ctdago
ctdoag
ctdoga
ctdgoa
ctdgao
ctodag
ctodga
ctoadg
ctoagd
ctogad
ctogda
ctgdoa
ctgdao
ctgoda
ctgoad
ctgaod
ctgado
cdtaog
cdtago
cdtoag
cdtoga
cdtgoa
cdtgao
cdatog
cdatgo
cdaotg
cdaogt
cdagot
cdagto
cdoatg
cdoagt
cdotag
cdotga
cdogta
cdogat
cdgaot
cdgato
cdgoat
cdgota
cdgtoa
cdgtao
cotdag
cotdga
cotadg
cotagd
cotgad
cotgda
codtag
codtga
codatg
codagt
codgat
codgta
coadtg
coadgt
coatdg
coatgd
coagtd
coagdt
cogdat
cogdta
cogadt
cogatd
cogtad
cogtda
cgtdoa
cgtdao
cgtoda
cgtoad
cgtaod
cgtado
cgdtoa
cgdtao
cgdota
cgdoat
cgdaot
cgdato
cgodta
cgodat
cgotda
cgotad
cgoatd
cgoadt
cgadot
cgadto
cgaodt
cgaotd
cgatod
cgatdo
actdog
actdgo
actodg
actogd
actgod
actgdo
acdtog
acdtgo
acdotg
acdogt
acdgot
acdgto
acodtg
acodgt
acotdg
acotgd
acogtd
acogdt
acgdot
acgdto
acgodt
acgotd
acgtod
acgtdo
atcdog
atcdgo
atcodg
atcogd
atcgod
atcgdo
atdcog
atdcgo
atdocg
atdogc
atdgoc
atdgco
atodcg
atodgc
atocdg
atocgd
atogcd
atogdc
atgdoc
atgdco
atgodc
atgocd
atgcod
atgcdo
adtcog
adtcgo
adtocg
adtogc
adtgoc
adtgco
adctog
adctgo
adcotg
adcogt
adcgot
adcgto
adoctg
adocgt
adotcg
adotgc
adogtc
adogct
adgcot
adgcto
adgoct
adgotc
adgtoc
adgtco
aotdcg
aotdgc
aotcdg
aotcgd
aotgcd
aotgdc
aodtcg
aodtgc
aodctg
aodcgt
aodgct
aodgtc
aocdtg
aocdgt
aoctdg
aoctgd
aocgtd
aocgdt
aogdct
aogdtc
aogcdt
aogctd
aogtcd
aogtdc
agtdoc
agtdco
agtodc
agtocd
agtcod
agtcdo
agdtoc
agdtco
agdotc
agdoct
agdcot
agdcto
agodtc
agodct
agotdc
agotcd
agoctd
agocdt
agcdot
agcdto
agcodt
agcotd
agctod
agctdo
tacdog
tacdgo
tacodg
tacogd
tacgod
tacgdo
tadcog
tadcgo
tadocg
tadogc
tadgoc
tadgco
taodcg
taodgc
taocdg
taocgd
taogcd
taogdc
tagdoc
tagdco
tagodc
tagocd
tagcod
tagcdo
tcadog
tcadgo
tcaodg
tcaogd
tcagod
tcagdo
tcdaog
tcdago
tcdoag
tcdoga
tcdgoa
tcdgao
tcodag
tcodga
tcoadg
tcoagd
tcogad
tcogda
tcgdoa
tcgdao
tcgoda
tcgoad
tcgaod
tcgado
tdcaog
tdcago
tdcoag
tdcoga
tdcgoa
tdcgao
tdacog
tdacgo
tdaocg
tdaogc
tdagoc
tdagco
tdoacg
tdoagc
tdocag
tdocga
tdogca
tdogac
tdgaoc
tdgaco
tdgoac
tdgoca
tdgcoa
tdgcao
tocdag
tocdga
tocadg
tocagd
tocgad
tocgda
todcag
todcga
todacg
todagc
todgac
todgca
toadcg
toadgc
toacdg
toacgd
toagcd
toagdc
togdac
togdca
togadc
togacd
togcad
togcda
tgcdoa
tgcdao
tgcoda
tgcoad
tgcaod
tgcado
tgdcoa
tgdcao
tgdoca
tgdoac
tgdaoc
tgdaco
tgodca
tgodac
tgocda
tgocad
tgoacd
tgoadc
tgadoc
tgadco
tgaodc
tgaocd
tgacod
tgacdo
datcog
datcgo
datocg
datogc
datgoc
datgco
dactog
dactgo
dacotg
dacogt
dacgot
dacgto
daoctg
daocgt
daotcg
daotgc
daogtc
daogct
dagcot
dagcto
dagoct
dagotc
dagtoc
dagtco
dtacog
dtacgo
dtaocg
dtaogc
dtagoc
dtagco
dtcaog
dtcago
dtcoag
dtcoga
dtcgoa
dtcgao
dtocag
dtocga
dtoacg
dtoagc
dtogac
dtogca
dtgcoa
dtgcao
dtgoca
dtgoac
dtgaoc
dtgaco
dctaog
dctago
dctoag
dctoga
dctgoa
dctgao
dcatog
dcatgo
dcaotg
dcaogt
dcagot
dcagto
dcoatg
dcoagt
dcotag
dcotga
dcogta
dcogat
dcgaot
dcgato
dcgoat
dcgota
dcgtoa
dcgtao
dotcag
dotcga
dotacg
dotagc
dotgac
dotgca
doctag
doctga
docatg
docagt
docgat
docgta
doactg
doacgt
doatcg
doatgc
doagtc
doagct
dogcat
dogcta
dogact
dogatc
dogtac
dogtca
dgtcoa
dgtcao
dgtoca
dgtoac
dgtaoc
dgtaco
dgctoa
dgctao
dgcota
dgcoat
dgcaot
dgcato
dgocta
dgocat
dgotca
dgotac
dgoatc
dgoact
dgacot
dgacto
dgaoct
dgaotc
dgatoc
dgatco
oatdcg
oatdgc
oatcdg
oatcgd
oatgcd
oatgdc
oadtcg
oadtgc
oadctg
oadcgt
oadgct
oadgtc
oacdtg
oacdgt
oactdg
oactgd
oacgtd
oacgdt
oagdct
oagdtc
oagcdt
oagctd
oagtcd
oagtdc
otadcg
otadgc
otacdg
otacgd
otagcd
otagdc
otdacg
otdagc
otdcag
otdcga
otdgca
otdgac
otcdag
otcdga
otcadg
otcagd
otcgad
otcgda
otgdca
otgdac
otgcda
otgcad
otgacd
otgadc
odtacg
odtagc
odtcag
odtcga
odtgca
odtgac
odatcg
odatgc
odactg
odacgt
odagct
odagtc
odcatg
odcagt
odctag
odctga
odcgta
odcgat
odgact
odgatc
odgcat
odgcta
odgtca
odgtac
octdag
octdga
octadg
octagd
octgad
octgda
ocdtag
ocdtga
ocdatg
ocdagt
ocdgat
ocdgta
ocadtg
ocadgt
ocatdg
ocatgd
ocagtd
ocagdt
ocgdat
ocgdta
ocgadt
ocgatd
ocgtad
ocgtda
ogtdca
ogtdac
ogtcda
ogtcad
ogtacd
ogtadc
ogdtca
ogdtac
ogdcta
ogdcat
ogdact
ogdatc
ogcdta
ogcdat
ogctda
ogctad
ogcatd
ogcadt
ogadct
ogadtc
ogacdt
ogactd
ogatcd
ogatdc
gatdoc
gatdco
gatodc
gatocd
gatcod
gatcdo
gadtoc
gadtco
gadotc
gadoct
gadcot
gadcto
gaodtc
gaodct
gaotdc
gaotcd
gaoctd
gaocdt
gacdot
gacdto
gacodt
gacotd
gactod
gactdo
gtadoc
gtadco
gtaodc
gtaocd
gtacod
gtacdo
gtdaoc
gtdaco
gtdoac
gtdoca
gtdcoa
gtdcao
gtodac
gtodca
gtoadc
gtoacd
gtocad
gtocda
gtcdoa
gtcdao
gtcoda
gtcoad
gtcaod
gtcado
gdtaoc
gdtaco
gdtoac
gdtoca
gdtcoa
gdtcao
gdatoc
gdatco
gdaotc
gdaoct
gdacot
gdacto
gdoatc
gdoact
gdotac
gdotca
gdocta
gdocat
gdcaot
gdcato
gdcoat
gdcota
gdctoa
gdctao
gotdac
gotdca
gotadc
gotacd
gotcad
gotcda
godtac
godtca
godatc
godact
godcat
godcta
goadtc
goadct
goatdc
goatcd
goactd
goacdt
gocdat
gocdta
gocadt
gocatd
goctad
goctda
gctdoa
gctdao
gctoda
gctoad
gctaod
gctado
gcdtoa
gcdtao
gcdota
gcdoat
gcdaot
gcdato
gcodta
gcodat
gcotda
gcotad
gcoatd
gcoadt
gcadot
gcadto
gcaodt
gcaotd
gcatod
gcatdo

No comments:

Post a Comment

Program for primality test in JAVA

Problem: ============= Program for primality test in JAVA What is primality test? A primality test is an algorithm for determining wh...