Documente Academic
Documente Profesional
Documente Cultură
(Problema22)
Enun:Seduncuvntnevidformatculiterele{a,b,c}amestecate.
Sseaccepteintrareadacestedeformaww^Rw(notamcuw^Rcuvntulw
oglindit,R=inversulsu/reverse).
Exemplu:Fiew=abcaa,atuncicuvntuldepebandabcaaaacbaabcaaVafi
acceptat.
Ideeaderezolvare:Vomaflaundeseterminacuvntuldebaz(w)dup
caredelacaptulluivomverificaegalitateacuw^R,dindreaptasa.Apoivom
verificaegalitatealuiw,cuw`(celdelafinalulbenzii).
Paiialgoritmului:
Pasul1:Pentrufiecarecaracternemarcatdelanceputulcuvntului,
vommarca2caracterelasfritullui.Astfel,nfinalvomfipoziionaila
finalulcuvntuluiw(saulapoziiaL/3,undeLelungimeatotala
iruluidepeband).Strileq0q5.
Pasul2:ncepnddelasfritulcuvntuluiw,vommarca
caracterulcurentinevomducedreaptasrindpestecaracterelemarcate,
ivommarcacaracterullacareamajunsdacelcorespundecuceldela
careampornit.Astfelverificmegalitateprimelor2cuvinte,wiw^R.
Strileq6q9.
Pasul3:Vomverificaegalitateacuvintelorwiw(dedupw^R).
Pentrufiecarecaracterdelanceputulbenzii,lvommarcaivommerge
dreaptasrindpestecaracterelemarcatepncndvomajungelacele
nemarcate(careaparinluiwdelafinalulbenzii)ilevommarca.Astfel,
dacajungelaBlank,atunciavemsoluievalid,inermnedoars
refacemcuvntuliniialisneducemntrostarefinal.Strile
q10q14.
Pasul4:PorninddelaBlankdelafinalulbenzii,mergemdreapta
pnlaBlankirefacemiruliniial(demarcmcaracterele).Strile
q15q16.
ComplexitateSpaiu:3*|W|,unde|W|elungimeacuvantuluicareserepeta.
SauC.S=L,undeLelungimeairuluidepeband.
ComplexitateTimp:
Pas1:2*(L/3)*L=>O(L2)
Pas2:2*(L/3)*(2*L/3)=>O(L2)
Pas3:2*(L/3)*(2*L/3)=>O(L2)
Pas4:L=>O(L)
Complexitateafinal:O(L2)
GrafulMainiiTuring: