mirror of
https://github.com/theoludwig/programming-challenges.git
synced 2024-10-29 22:17:23 +01:00
feat(challenges): add heap-algorithm
This commit is contained in:
parent
d97fe47377
commit
12d0d1b37a
34
challenges/heap-algorithm/README.md
Normal file
34
challenges/heap-algorithm/README.md
Normal file
@ -0,0 +1,34 @@
|
||||
# heap-algorithm
|
||||
|
||||
Created by [@Divlo](https://github.com/Divlo) on 8 November 2021.
|
||||
|
||||
## Instructions
|
||||
|
||||
Write a program that generates all possible unique permutations of a string.
|
||||
|
||||
## Source
|
||||
|
||||
- [Heap's Algorithm - Wikipedia](https://en.wikipedia.org/wiki/Heap%27s_algorithm)
|
||||
|
||||
## Examples
|
||||
|
||||
### Example 1
|
||||
|
||||
#### Input
|
||||
|
||||
```txt
|
||||
abc
|
||||
```
|
||||
|
||||
#### Output
|
||||
|
||||
```txt
|
||||
abc
|
||||
bac
|
||||
cba
|
||||
bca
|
||||
cab
|
||||
acb
|
||||
```
|
||||
|
||||
See the `test` folder for examples of input/output.
|
0
challenges/heap-algorithm/solutions/.gitkeep
Normal file
0
challenges/heap-algorithm/solutions/.gitkeep
Normal file
1
challenges/heap-algorithm/test/1/input.txt
Normal file
1
challenges/heap-algorithm/test/1/input.txt
Normal file
@ -0,0 +1 @@
|
||||
abc
|
6
challenges/heap-algorithm/test/1/output.txt
Normal file
6
challenges/heap-algorithm/test/1/output.txt
Normal file
@ -0,0 +1,6 @@
|
||||
abc
|
||||
bac
|
||||
cba
|
||||
bca
|
||||
cab
|
||||
acb
|
1
challenges/heap-algorithm/test/2/input.txt
Normal file
1
challenges/heap-algorithm/test/2/input.txt
Normal file
@ -0,0 +1 @@
|
||||
cool
|
24
challenges/heap-algorithm/test/2/output.txt
Normal file
24
challenges/heap-algorithm/test/2/output.txt
Normal file
@ -0,0 +1,24 @@
|
||||
cool
|
||||
ocol
|
||||
oocl
|
||||
oocl
|
||||
ocol
|
||||
cool
|
||||
looc
|
||||
oloc
|
||||
oolc
|
||||
oolc
|
||||
oloc
|
||||
looc
|
||||
cool
|
||||
ocol
|
||||
oocl
|
||||
oocl
|
||||
ocol
|
||||
cool
|
||||
looc
|
||||
oloc
|
||||
oolc
|
||||
oolc
|
||||
oloc
|
||||
looc
|
1
challenges/heap-algorithm/test/3/input.txt
Normal file
1
challenges/heap-algorithm/test/3/input.txt
Normal file
@ -0,0 +1 @@
|
||||
kayak
|
120
challenges/heap-algorithm/test/3/output.txt
Normal file
120
challenges/heap-algorithm/test/3/output.txt
Normal file
@ -0,0 +1,120 @@
|
||||
kayak
|
||||
akyak
|
||||
yakak
|
||||
aykak
|
||||
ykaak
|
||||
kyaak
|
||||
aaykk
|
||||
aaykk
|
||||
yaakk
|
||||
ayakk
|
||||
yaakk
|
||||
ayakk
|
||||
kayak
|
||||
akyak
|
||||
yakak
|
||||
aykak
|
||||
ykaak
|
||||
kyaak
|
||||
aaykk
|
||||
aaykk
|
||||
yaakk
|
||||
ayakk
|
||||
yaakk
|
||||
ayakk
|
||||
kayak
|
||||
akyak
|
||||
yakak
|
||||
aykak
|
||||
ykaak
|
||||
kyaak
|
||||
aaykk
|
||||
aaykk
|
||||
yaakk
|
||||
ayakk
|
||||
yaakk
|
||||
ayakk
|
||||
kayak
|
||||
akyak
|
||||
yakak
|
||||
aykak
|
||||
ykaak
|
||||
kyaak
|
||||
aaykk
|
||||
aaykk
|
||||
yaakk
|
||||
ayakk
|
||||
yaakk
|
||||
ayakk
|
||||
kkyaa
|
||||
kkyaa
|
||||
ykkaa
|
||||
kykaa
|
||||
ykkaa
|
||||
kykaa
|
||||
akyka
|
||||
kayka
|
||||
ykaka
|
||||
kyaka
|
||||
yakka
|
||||
aykka
|
||||
kkyaa
|
||||
kkyaa
|
||||
ykkaa
|
||||
kykaa
|
||||
ykkaa
|
||||
kykaa
|
||||
akyka
|
||||
kayka
|
||||
ykaka
|
||||
kyaka
|
||||
yakka
|
||||
aykka
|
||||
kkaay
|
||||
kkaay
|
||||
akkay
|
||||
kakay
|
||||
akkay
|
||||
kakay
|
||||
akaky
|
||||
kaaky
|
||||
akaky
|
||||
kaaky
|
||||
aakky
|
||||
aakky
|
||||
kkaay
|
||||
kkaay
|
||||
akkay
|
||||
kakay
|
||||
akkay
|
||||
kakay
|
||||
akaky
|
||||
kaaky
|
||||
akaky
|
||||
kaaky
|
||||
aakky
|
||||
aakky
|
||||
kkaya
|
||||
kkaya
|
||||
akkya
|
||||
kakya
|
||||
akkya
|
||||
kakya
|
||||
ykaka
|
||||
kyaka
|
||||
akyka
|
||||
kayka
|
||||
aykka
|
||||
yakka
|
||||
kkaya
|
||||
kkaya
|
||||
akkya
|
||||
kakya
|
||||
akkya
|
||||
kakya
|
||||
ykaka
|
||||
kyaka
|
||||
akyka
|
||||
kayka
|
||||
aykka
|
||||
yakka
|
1
challenges/heap-algorithm/test/4/input.txt
Normal file
1
challenges/heap-algorithm/test/4/input.txt
Normal file
@ -0,0 +1 @@
|
||||
azerty
|
720
challenges/heap-algorithm/test/4/output.txt
Normal file
720
challenges/heap-algorithm/test/4/output.txt
Normal file
@ -0,0 +1,720 @@
|
||||
azerty
|
||||
zaerty
|
||||
ezarty
|
||||
zearty
|
||||
eazrty
|
||||
aezrty
|
||||
rzeaty
|
||||
zreaty
|
||||
ezraty
|
||||
zeraty
|
||||
erzaty
|
||||
rezaty
|
||||
azerty
|
||||
zaerty
|
||||
ezarty
|
||||
zearty
|
||||
eazrty
|
||||
aezrty
|
||||
rzeaty
|
||||
zreaty
|
||||
ezraty
|
||||
zeraty
|
||||
erzaty
|
||||
rezaty
|
||||
tzeray
|
||||
zteray
|
||||
eztray
|
||||
zetray
|
||||
etzray
|
||||
tezray
|
||||
rzetay
|
||||
zretay
|
||||
ezrtay
|
||||
zertay
|
||||
erztay
|
||||
reztay
|
||||
tzeray
|
||||
zteray
|
||||
eztray
|
||||
zetray
|
||||
etzray
|
||||
tezray
|
||||
rzetay
|
||||
zretay
|
||||
ezrtay
|
||||
zertay
|
||||
erztay
|
||||
reztay
|
||||
taerzy
|
||||
aterzy
|
||||
eatrzy
|
||||
aetrzy
|
||||
etarzy
|
||||
tearzy
|
||||
raetzy
|
||||
aretzy
|
||||
eartzy
|
||||
aertzy
|
||||
eratzy
|
||||
reatzy
|
||||
taerzy
|
||||
aterzy
|
||||
eatrzy
|
||||
aetrzy
|
||||
etarzy
|
||||
tearzy
|
||||
raetzy
|
||||
aretzy
|
||||
eartzy
|
||||
aertzy
|
||||
eratzy
|
||||
reatzy
|
||||
tazrey
|
||||
atzrey
|
||||
zatrey
|
||||
aztrey
|
||||
ztarey
|
||||
tzarey
|
||||
raztey
|
||||
arztey
|
||||
zartey
|
||||
azrtey
|
||||
zratey
|
||||
rzatey
|
||||
tazrey
|
||||
atzrey
|
||||
zatrey
|
||||
aztrey
|
||||
ztarey
|
||||
tzarey
|
||||
raztey
|
||||
arztey
|
||||
zartey
|
||||
azrtey
|
||||
zratey
|
||||
rzatey
|
||||
tazery
|
||||
atzery
|
||||
zatery
|
||||
aztery
|
||||
ztaery
|
||||
tzaery
|
||||
eaztry
|
||||
aeztry
|
||||
zaetry
|
||||
azetry
|
||||
zeatry
|
||||
ezatry
|
||||
tazery
|
||||
atzery
|
||||
zatery
|
||||
aztery
|
||||
ztaery
|
||||
tzaery
|
||||
eaztry
|
||||
aeztry
|
||||
zaetry
|
||||
azetry
|
||||
zeatry
|
||||
ezatry
|
||||
yzerta
|
||||
zyerta
|
||||
ezyrta
|
||||
zeyrta
|
||||
eyzrta
|
||||
yezrta
|
||||
rzeyta
|
||||
zreyta
|
||||
ezryta
|
||||
zeryta
|
||||
erzyta
|
||||
rezyta
|
||||
yzerta
|
||||
zyerta
|
||||
ezyrta
|
||||
zeyrta
|
||||
eyzrta
|
||||
yezrta
|
||||
rzeyta
|
||||
zreyta
|
||||
ezryta
|
||||
zeryta
|
||||
erzyta
|
||||
rezyta
|
||||
tzerya
|
||||
zterya
|
||||
eztrya
|
||||
zetrya
|
||||
etzrya
|
||||
tezrya
|
||||
rzetya
|
||||
zretya
|
||||
ezrtya
|
||||
zertya
|
||||
erztya
|
||||
reztya
|
||||
tzerya
|
||||
zterya
|
||||
eztrya
|
||||
zetrya
|
||||
etzrya
|
||||
tezrya
|
||||
rzetya
|
||||
zretya
|
||||
ezrtya
|
||||
zertya
|
||||
erztya
|
||||
reztya
|
||||
tyerza
|
||||
yterza
|
||||
eytrza
|
||||
yetrza
|
||||
etyrza
|
||||
teyrza
|
||||
ryetza
|
||||
yretza
|
||||
eyrtza
|
||||
yertza
|
||||
erytza
|
||||
reytza
|
||||
tyerza
|
||||
yterza
|
||||
eytrza
|
||||
yetrza
|
||||
etyrza
|
||||
teyrza
|
||||
ryetza
|
||||
yretza
|
||||
eyrtza
|
||||
yertza
|
||||
erytza
|
||||
reytza
|
||||
tyzrea
|
||||
ytzrea
|
||||
zytrea
|
||||
yztrea
|
||||
ztyrea
|
||||
tzyrea
|
||||
ryztea
|
||||
yrztea
|
||||
zyrtea
|
||||
yzrtea
|
||||
zrytea
|
||||
rzytea
|
||||
tyzrea
|
||||
ytzrea
|
||||
zytrea
|
||||
yztrea
|
||||
ztyrea
|
||||
tzyrea
|
||||
ryztea
|
||||
yrztea
|
||||
zyrtea
|
||||
yzrtea
|
||||
zrytea
|
||||
rzytea
|
||||
tyzera
|
||||
ytzera
|
||||
zytera
|
||||
yztera
|
||||
ztyera
|
||||
tzyera
|
||||
eyztra
|
||||
yeztra
|
||||
zyetra
|
||||
yzetra
|
||||
zeytra
|
||||
ezytra
|
||||
tyzera
|
||||
ytzera
|
||||
zytera
|
||||
yztera
|
||||
ztyera
|
||||
tzyera
|
||||
eyztra
|
||||
yeztra
|
||||
zyetra
|
||||
yzetra
|
||||
zeytra
|
||||
ezytra
|
||||
azerty
|
||||
zaerty
|
||||
ezarty
|
||||
zearty
|
||||
eazrty
|
||||
aezrty
|
||||
rzeaty
|
||||
zreaty
|
||||
ezraty
|
||||
zeraty
|
||||
erzaty
|
||||
rezaty
|
||||
azerty
|
||||
zaerty
|
||||
ezarty
|
||||
zearty
|
||||
eazrty
|
||||
aezrty
|
||||
rzeaty
|
||||
zreaty
|
||||
ezraty
|
||||
zeraty
|
||||
erzaty
|
||||
rezaty
|
||||
tzeray
|
||||
zteray
|
||||
eztray
|
||||
zetray
|
||||
etzray
|
||||
tezray
|
||||
rzetay
|
||||
zretay
|
||||
ezrtay
|
||||
zertay
|
||||
erztay
|
||||
reztay
|
||||
tzeray
|
||||
zteray
|
||||
eztray
|
||||
zetray
|
||||
etzray
|
||||
tezray
|
||||
rzetay
|
||||
zretay
|
||||
ezrtay
|
||||
zertay
|
||||
erztay
|
||||
reztay
|
||||
taerzy
|
||||
aterzy
|
||||
eatrzy
|
||||
aetrzy
|
||||
etarzy
|
||||
tearzy
|
||||
raetzy
|
||||
aretzy
|
||||
eartzy
|
||||
aertzy
|
||||
eratzy
|
||||
reatzy
|
||||
taerzy
|
||||
aterzy
|
||||
eatrzy
|
||||
aetrzy
|
||||
etarzy
|
||||
tearzy
|
||||
raetzy
|
||||
aretzy
|
||||
eartzy
|
||||
aertzy
|
||||
eratzy
|
||||
reatzy
|
||||
tazrey
|
||||
atzrey
|
||||
zatrey
|
||||
aztrey
|
||||
ztarey
|
||||
tzarey
|
||||
raztey
|
||||
arztey
|
||||
zartey
|
||||
azrtey
|
||||
zratey
|
||||
rzatey
|
||||
tazrey
|
||||
atzrey
|
||||
zatrey
|
||||
aztrey
|
||||
ztarey
|
||||
tzarey
|
||||
raztey
|
||||
arztey
|
||||
zartey
|
||||
azrtey
|
||||
zratey
|
||||
rzatey
|
||||
tazery
|
||||
atzery
|
||||
zatery
|
||||
aztery
|
||||
ztaery
|
||||
tzaery
|
||||
eaztry
|
||||
aeztry
|
||||
zaetry
|
||||
azetry
|
||||
zeatry
|
||||
ezatry
|
||||
tazery
|
||||
atzery
|
||||
zatery
|
||||
aztery
|
||||
ztaery
|
||||
tzaery
|
||||
eaztry
|
||||
aeztry
|
||||
zaetry
|
||||
azetry
|
||||
zeatry
|
||||
ezatry
|
||||
yzerta
|
||||
zyerta
|
||||
ezyrta
|
||||
zeyrta
|
||||
eyzrta
|
||||
yezrta
|
||||
rzeyta
|
||||
zreyta
|
||||
ezryta
|
||||
zeryta
|
||||
erzyta
|
||||
rezyta
|
||||
yzerta
|
||||
zyerta
|
||||
ezyrta
|
||||
zeyrta
|
||||
eyzrta
|
||||
yezrta
|
||||
rzeyta
|
||||
zreyta
|
||||
ezryta
|
||||
zeryta
|
||||
erzyta
|
||||
rezyta
|
||||
tzerya
|
||||
zterya
|
||||
eztrya
|
||||
zetrya
|
||||
etzrya
|
||||
tezrya
|
||||
rzetya
|
||||
zretya
|
||||
ezrtya
|
||||
zertya
|
||||
erztya
|
||||
reztya
|
||||
tzerya
|
||||
zterya
|
||||
eztrya
|
||||
zetrya
|
||||
etzrya
|
||||
tezrya
|
||||
rzetya
|
||||
zretya
|
||||
ezrtya
|
||||
zertya
|
||||
erztya
|
||||
reztya
|
||||
tyerza
|
||||
yterza
|
||||
eytrza
|
||||
yetrza
|
||||
etyrza
|
||||
teyrza
|
||||
ryetza
|
||||
yretza
|
||||
eyrtza
|
||||
yertza
|
||||
erytza
|
||||
reytza
|
||||
tyerza
|
||||
yterza
|
||||
eytrza
|
||||
yetrza
|
||||
etyrza
|
||||
teyrza
|
||||
ryetza
|
||||
yretza
|
||||
eyrtza
|
||||
yertza
|
||||
erytza
|
||||
reytza
|
||||
tyzrea
|
||||
ytzrea
|
||||
zytrea
|
||||
yztrea
|
||||
ztyrea
|
||||
tzyrea
|
||||
ryztea
|
||||
yrztea
|
||||
zyrtea
|
||||
yzrtea
|
||||
zrytea
|
||||
rzytea
|
||||
tyzrea
|
||||
ytzrea
|
||||
zytrea
|
||||
yztrea
|
||||
ztyrea
|
||||
tzyrea
|
||||
ryztea
|
||||
yrztea
|
||||
zyrtea
|
||||
yzrtea
|
||||
zrytea
|
||||
rzytea
|
||||
tyzera
|
||||
ytzera
|
||||
zytera
|
||||
yztera
|
||||
ztyera
|
||||
tzyera
|
||||
eyztra
|
||||
yeztra
|
||||
zyetra
|
||||
yzetra
|
||||
zeytra
|
||||
ezytra
|
||||
tyzera
|
||||
ytzera
|
||||
zytera
|
||||
yztera
|
||||
ztyera
|
||||
tzyera
|
||||
eyztra
|
||||
yeztra
|
||||
zyetra
|
||||
yzetra
|
||||
zeytra
|
||||
ezytra
|
||||
azerty
|
||||
zaerty
|
||||
ezarty
|
||||
zearty
|
||||
eazrty
|
||||
aezrty
|
||||
rzeaty
|
||||
zreaty
|
||||
ezraty
|
||||
zeraty
|
||||
erzaty
|
||||
rezaty
|
||||
azerty
|
||||
zaerty
|
||||
ezarty
|
||||
zearty
|
||||
eazrty
|
||||
aezrty
|
||||
rzeaty
|
||||
zreaty
|
||||
ezraty
|
||||
zeraty
|
||||
erzaty
|
||||
rezaty
|
||||
tzeray
|
||||
zteray
|
||||
eztray
|
||||
zetray
|
||||
etzray
|
||||
tezray
|
||||
rzetay
|
||||
zretay
|
||||
ezrtay
|
||||
zertay
|
||||
erztay
|
||||
reztay
|
||||
tzeray
|
||||
zteray
|
||||
eztray
|
||||
zetray
|
||||
etzray
|
||||
tezray
|
||||
rzetay
|
||||
zretay
|
||||
ezrtay
|
||||
zertay
|
||||
erztay
|
||||
reztay
|
||||
taerzy
|
||||
aterzy
|
||||
eatrzy
|
||||
aetrzy
|
||||
etarzy
|
||||
tearzy
|
||||
raetzy
|
||||
aretzy
|
||||
eartzy
|
||||
aertzy
|
||||
eratzy
|
||||
reatzy
|
||||
taerzy
|
||||
aterzy
|
||||
eatrzy
|
||||
aetrzy
|
||||
etarzy
|
||||
tearzy
|
||||
raetzy
|
||||
aretzy
|
||||
eartzy
|
||||
aertzy
|
||||
eratzy
|
||||
reatzy
|
||||
tazrey
|
||||
atzrey
|
||||
zatrey
|
||||
aztrey
|
||||
ztarey
|
||||
tzarey
|
||||
raztey
|
||||
arztey
|
||||
zartey
|
||||
azrtey
|
||||
zratey
|
||||
rzatey
|
||||
tazrey
|
||||
atzrey
|
||||
zatrey
|
||||
aztrey
|
||||
ztarey
|
||||
tzarey
|
||||
raztey
|
||||
arztey
|
||||
zartey
|
||||
azrtey
|
||||
zratey
|
||||
rzatey
|
||||
tazery
|
||||
atzery
|
||||
zatery
|
||||
aztery
|
||||
ztaery
|
||||
tzaery
|
||||
eaztry
|
||||
aeztry
|
||||
zaetry
|
||||
azetry
|
||||
zeatry
|
||||
ezatry
|
||||
tazery
|
||||
atzery
|
||||
zatery
|
||||
aztery
|
||||
ztaery
|
||||
tzaery
|
||||
eaztry
|
||||
aeztry
|
||||
zaetry
|
||||
azetry
|
||||
zeatry
|
||||
ezatry
|
||||
yzerta
|
||||
zyerta
|
||||
ezyrta
|
||||
zeyrta
|
||||
eyzrta
|
||||
yezrta
|
||||
rzeyta
|
||||
zreyta
|
||||
ezryta
|
||||
zeryta
|
||||
erzyta
|
||||
rezyta
|
||||
yzerta
|
||||
zyerta
|
||||
ezyrta
|
||||
zeyrta
|
||||
eyzrta
|
||||
yezrta
|
||||
rzeyta
|
||||
zreyta
|
||||
ezryta
|
||||
zeryta
|
||||
erzyta
|
||||
rezyta
|
||||
tzerya
|
||||
zterya
|
||||
eztrya
|
||||
zetrya
|
||||
etzrya
|
||||
tezrya
|
||||
rzetya
|
||||
zretya
|
||||
ezrtya
|
||||
zertya
|
||||
erztya
|
||||
reztya
|
||||
tzerya
|
||||
zterya
|
||||
eztrya
|
||||
zetrya
|
||||
etzrya
|
||||
tezrya
|
||||
rzetya
|
||||
zretya
|
||||
ezrtya
|
||||
zertya
|
||||
erztya
|
||||
reztya
|
||||
tyerza
|
||||
yterza
|
||||
eytrza
|
||||
yetrza
|
||||
etyrza
|
||||
teyrza
|
||||
ryetza
|
||||
yretza
|
||||
eyrtza
|
||||
yertza
|
||||
erytza
|
||||
reytza
|
||||
tyerza
|
||||
yterza
|
||||
eytrza
|
||||
yetrza
|
||||
etyrza
|
||||
teyrza
|
||||
ryetza
|
||||
yretza
|
||||
eyrtza
|
||||
yertza
|
||||
erytza
|
||||
reytza
|
||||
tyzrea
|
||||
ytzrea
|
||||
zytrea
|
||||
yztrea
|
||||
ztyrea
|
||||
tzyrea
|
||||
ryztea
|
||||
yrztea
|
||||
zyrtea
|
||||
yzrtea
|
||||
zrytea
|
||||
rzytea
|
||||
tyzrea
|
||||
ytzrea
|
||||
zytrea
|
||||
yztrea
|
||||
ztyrea
|
||||
tzyrea
|
||||
ryztea
|
||||
yrztea
|
||||
zyrtea
|
||||
yzrtea
|
||||
zrytea
|
||||
rzytea
|
||||
tyzera
|
||||
ytzera
|
||||
zytera
|
||||
yztera
|
||||
ztyera
|
||||
tzyera
|
||||
eyztra
|
||||
yeztra
|
||||
zyetra
|
||||
yzetra
|
||||
zeytra
|
||||
ezytra
|
||||
tyzera
|
||||
ytzera
|
||||
zytera
|
||||
yztera
|
||||
ztyera
|
||||
tzyera
|
||||
eyztra
|
||||
yeztra
|
||||
zyetra
|
||||
yzetra
|
||||
zeytra
|
||||
ezytra
|
@ -1,3 +1,3 @@
|
||||
FROM node:16.11.1
|
||||
FROM node:16.13.0
|
||||
COPY ./ ./
|
||||
CMD ["node", "solution.js"]
|
||||
|
Loading…
Reference in New Issue
Block a user