Una sottostringa, sottosequenza, prefisso o suffisso di una stringa è un sottoinsieme di simboli in una stringa, in cui l'ordine degli elementi è preservato. In questo contesto, i termini stringa e sequenza assumono lo stesso significato.

Sottosequenza

Una sottosequenza di una strina   è una stringa   tale che  , dove  . La sottosequenza è una generalizzazione del concetto di sottostringa, suffisso e prefisso. Trovare la stringa più lunga uguale a una sottosequenza di due o più stringhe è noto come il problema della sottosequenza comune più lunga.

Esempio: la stringa anna è una sottosequenza della stringa banana:

banana
 || ||
 an na

Sottostringa

Una sottostringa (o fattore) di una stringa   è una stringa  , dove   e  . Una sottostringa di una stringa è un prefisso di un suffisso della stringa o, in modo equivalente, un suffisso di un prefisso della stringa. Se   è una sottostringa di  , essa è anche una sottosequenza, che è un concetto più generale. Dato un pattern  , è possibile trovarne le occorrenze in una strina   mediante un algoritmo di ricerca su stringhe. Trovare la stringa più lunga uguale a una sottostringa di due o più stringhe è noto come il problema della sottostringa comune più lunga.

Esempio: La stringa ana è una sottostringa (e sottosequenza) di banana in due posizioni differenti:

banana
 |||||
 ana||
   |||
   ana

Nella letteratura matematica, le sottostringhe sono anche chiamate subwords (in America) o fattori (in Europa).

Prefisso

Un prefisso di una stringa   è una stringa  , dove  . Un prefisso proprio di una stringa ha lunghezza inferiore rispetto alla stessa ( )[1]; alcune definizioni[2] in aggiunta richiedono che un prefisso proprio sia non vuoto ( ). Un prefisso può essere visto come un caso speciale di una sottostringa.

Esempio: La stringa ban è un prefisso (e sottostringa e sottosequenza) della stringa banana:

banana
|||
ban

Il simbolo di sottoinsieme quadrato è a volte utilizzato per indicare un prefisso, così   denota che   è un prefisso di  , definendo una relazione binaria su stringhe, chiamata la relazione prefisso.

References

  1. ^ Errore nelle note: Errore nell'uso del marcatore <ref>: non è stato indicato alcun testo per il marcatore Kel95
  2. ^ Errore nelle note: Errore nell'uso del marcatore <ref>: non è stato indicato alcun testo per il marcatore Gus97