Sunteți pe pagina 1din 2

TemaMT.gr.234IonUreche.

(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:

S-ar putea să vă placă și