<prompt> Ruhusa ya ruhusa ya n nambari kamili za nambari zote katika safu 1, n inaweza kuwakilishwa kama mfuatano s wa urefu n - 1 ambapo: si I ikiwa permi permi 1.Kwa kuzingatia mfuatano s, jenga upya ruhusu ndogo zaidi ya kileksikografia perm na uirudishe.Mfano wa 1:Ingizo: s MimiPato: 1,2Maelezo: 1,2 ndiyo ruhusa pekee ya kisheria inayoweza kuwakilishwa na s, ambapo nambari 1 na 2 hujenga uhusiano unaoongezeka.Mfano wa 2:Ingizo: s DIPato: 2,1,3Maelezo: Zote 2,1,3 na 3,1,2 zinaweza kuwakilishwa kama DI, lakini kwa kuwa tunataka kupata upitishaji mdogo zaidi wa kileksikografia, unapaswa kurejea 2,1,3Vikwazo: 1 s.urefu 105 si ama ni mimi au D.  <response>: chatudef findPermutations: str - listint: perm 0 lens 1 kushoto 1 mimi 0 wakati mimi lens: ikiwa si Mimi: permi kushoto kushoto 1 huku mimi 1 lens na si 1 D: mimi 1 mimi 1 permlens left kushoto 1 kwa mimi katika kinyumeanuwailens: ikiwa si D: permi kushoto kushoto 1 ruhusa ya kurudimaelezoAlgorithm inafanya kazi kama ifuatavyo:1. Anzisha safu tupu ya vibali vya perm ya urefu n1 ambapo n ni urefu wa mfuatano s.2. Anzisha kigezo left chenye thamani 1. Kigezo hiki kitafuatilia nambari ndogo inayofuata isiyotumika.3. Rudia kupitia mfuatano uliotolewa s. Ikiwa herufi katika faharasa i ni mimi, weka thamani ya kushoto katika faharasa sawa katika safu perm na nyongeza kushoto. Ikiwa kuna mlolongo wa D ifuatayo ya sasa I, ruka moja kwa moja hadi mwisho wa mfuatano huu.4. Baada ya kurudia mfuatano mzima, weka thamani ya kushoto kwa nafasi ya mwisho ya safu perm na nyongeza kushoto.5. Rudia kupitia mfuatano s kwa mpangilio wa kinyume. Ikiwa herufi katika faharasa i ni D, weka thamani ya kushoto kwenye faharasa sawa katika safu ya perm na nyongeza kushoto.6. Mwishoni mwa mchakato, safu iliyojazwa ya perm inawakilisha uidhinishaji mdogo zaidi wa kileksikografia.Utata wa saa wa algoriti hii ni On inaporudiwa kupitia mfuatano s na kujaza safu ya perm katika muda wa mstari. 