PDA

View Full Version : [C] trovare parte comune di due stringhe


swuopo
06-11-2007, 17:39
ragazzi devo fare questo esercizio di cui naturalmente nn chiedo la risoluzione, ma bensi un aiuto sul ragionamento che dovrei fare:

Scrivere una funzione che prese in input due stringhe, A e B, stampi la stringa
corrispondente al lucchetto di A e B. Il lucchetto
(http://it.wikipedia.org/wiki/Lucchetto (enigmistica)) di due stringhe A e B `e una
terza stringa C ottenuta prendendo la prima stringa, eliminando una certa porzione
dalla coda (parte finale) di A che `e contenuta nella testa (parte iniziale) della seconda
stringa B, e poi prendendo la coda della stringa B. Quindi, se la stringa A = XY
(dove X ed Y sono due porzioni della stringa A) e B = Y Z, il lucchetto di A e B `e
la stringa C = XZ (dove l’ultimo carattere di X `e diverso dal primo carattere di Z).
Ad esempio prese le due stringhe mais e sale, il lucchetto di tali stringhe `e maiale.
Ancora prese le stringhe persona e sonate, il lucchetto `e la stringa perte. Bisogna
perci`o determinare la massima sottostringa comune alla coda di A ed alla testa di
B, eliminarla da entrambe le stringhe e concatenare le parti restanti di A e B.

andbin
06-11-2007, 19:45
Scrivere una funzione che prese in input due stringhe, A e B, stampi la stringa
corrispondente al lucchetto di A e B.Non sapevo di questo "gioco" enigmistico .... comunque non è difficile. Prendiamo un esempio che c'è su Wikipedia: luna / nascita. Basta partire dalla fine della prima parola e prendere di volta in volta sempre una lettera in più e verificare se tale parte finale corrisponde all'inizio della seconda parola.

Per fare l'esempio:
"nascita" inizia con "a"? No
"nascita" inizia con "na"? Si
"nascita" inizia con "una"? No
"nascita" inizia con "luna"? No

Quindi la parte finale più lunga della prima parola che corrisponde all'inizio della seconda parola è "na".