String matching e pattern

Questa serie di flashcards copre i concetti fondamentali e le tecniche di ricerca delle stringhe e dei pattern, utili per la programmazione e l'analisi dei dati.

Edoardo2007·48 flashcards·48 vragen
universitàcomputer_sciencealgorithms
0
Ken ik
1 / 48
0
Aan het leren
Voorkant

Stringa

Tik om om te draaien
Achterkant

Una sequenza di caratteri, come lettere e numeri. Esempio: 'ciao'.

Tik om om te draaien
Ken ik
Aan het leren

Quiz(48 vragen)

Vraag 1 van 48

1. Qual è un'applicazione delle stringhe nei motori di ricerca?

Termen in deze set(48)

Concetti di base(16)

Stringa

Una sequenza di caratteri, come lettere e numeri. Esempio: 'ciao'.

Pattern

Un modello che viene cercato all'interno di una stringa. Può essere semplice o complesso.

Corrispondenza esatta

Quando una stringa corrisponde perfettamente a un pattern specificato.

Corrispondenza parziale

Quando solo una parte della stringa corrisponde al pattern. Es. 'c' in 'ciao'.

Pattern regolare

Un'espressione che definisce un insieme di stringhe. Utilizzato in ricerca avanzata.

Algoritmo di ricerca

Procedura per trovare un pattern in una stringa. Es. ricerca lineare.

Ricerca lineare

Controlla ogni carattere della stringa in sequenza. Tempo: O(n)\displaystyle O(n).

Ricerca binaria

Richiede una stringa ordinata. Divide la stringa per trovare il pattern. Tempo: O(extlogn)\displaystyle O( ext{log } n).

Vettore di spostamento

Usato per ottimizzare il matching spostando l'indice della stringa. Essenziale in algoritmi efficienti.

Falso

La ricerca di stringhe non è utile. - È fondamentale per molte applicazioni.

Stringa vuota

Una stringa senza caratteri. Corrisponde sempre a un pattern vuoto.

Cerca e sostituisci

Un'applicazione comune della ricerca di stringhe. Permette di modificare parti di una stringa.

Sotto-stringa

Una parte di una stringa. Es. 'cia' è una sotto-stringa di 'ciao'.

Match totale

Quando il pattern è trovato in tutta la stringa. Non ci sono caratteri extra.

Esempio di corrispondenza

Stringa: 'abcabc', Pattern: 'abc' → Trovato alla posizione 0 e 3.

Caratteri jolly

Caratteri speciali nei pattern che rappresentano una o più lettere. Es. '.' in regex.

Algoritmi di ricerca(16)

Algoritmo di ricerca lineare

Cerca un elemento confrontando ogni singolo valore in una lista. - Complessità: O(n).

Ricerca binaria

Richiede che la lista sia ordinata. Divide la lista in due a ogni passo. - Complessità: O(log n).

Qual è la complessità della ricerca lineare?

O(n) - Dove n è il numero di elementi.

Algoritmo Knuth-Morris-Pratt

Utilizza una tabella di fallimento per migliorare l'efficienza. - Complessità: O(n + m), dove n è la lunghezza della stringa e m è la lunghezza del pattern.

Vero o falso: La ricerca binaria funziona su dati non ordinati.

Falso. La ricerca binaria richiede che i dati siano ordinati.

Algoritmo di Boyer-Moore

Salta parti della stringa da cercare. Utilizza informazioni sui caratteri. - Complessità media: O(n/m), dove m è la lunghezza del pattern.

Qual è la funzione principale del preprocessing in KMP?

Costruire la tabella di fallimento. Aiuta a saltare confronti inutili.

Ricerca con espressioni regolari

Permette di cercare pattern complessi. Utilizza simboli come . e *. - Esempio: a.b trova 'acb' e 'ajb'.

Qual è la complessità del Boyer-Moore nel caso peggiore?

O(n * m) - Raro, ma possibile in alcune configurazioni.

Fill in the blank: L'algoritmo _________ è molto efficace per stringhe lunghe.

Boyer-Moore.

Ricerca di stringhe con l'algoritmo Rabin-Karp

Utilizza hash per confrontare stringhe. - Complessità: O(n + m) nel caso medio.

Qual è un vantaggio della ricerca binaria?

È molto veloce su dati ordinati. - Risparmia tempo rispetto alla ricerca lineare.

Algoritmo Aho-Corasick

Cerca più pattern contemporaneamente. Costruisce un automa. - Complessità: O(n + z), dove z è il numero di occorrenze.

Vero o falso: KMP è più veloce di Boyer-Moore per tutte le stringhe.

Falso. Boyer-Moore è più veloce in media su molte stringhe.

Qual è un'applicazione della ricerca di stringhe?

Filtraggio di dati, ricerca in database e analisi del testo.

Algoritmo di ricerca Aho-Corasick

L'algoritmo Aho-Corasick è utilizzato per cercare più pattern in una stringa simultaneamente. - Costruzione di un automa finito - Efficienza: O(n+m+z)\displaystyle O(n + m + z), dove n\displaystyle n è la lunghezza della stringa, m\displaystyle m la somma delle lunghezze dei pattern, e z\displaystyle z è il numero di occorrenze trovate.

Applicazioni pratiche(16)

Filtri di ricerca nei motori

Le stringhe aiutano a trovare pagine web specifiche. - Filtraggio dei risultati - Ottimizzazione delle query

Riconoscimento di pattern in immagini

Tecniche di matching di stringhe sono usate per identificare oggetti in immagini, migliorando l'analisi visiva.

Validazione di input utente

Le stringhe verificano che i dati inseriti dagli utenti rispettino formati specifici, ad esempio email o numeri di telefono.

Analisi di testi legali

Il matching di stringhe aiuta a estrarre informazioni rilevanti da documenti legali complessi. - Efficiente - Tempistiche ridotte

True or False: La ricerca di stringhe è solo per testi.

Falso, è utilizzata anche per immagini e dati audio.

Ricerca di anomalie nei log

Le stringhe individuano messaggi di errore o comportamenti anomali nei log di sistema, semplificando il debugging.

Matching in bioinformatica

Identifica sequenze di DNA simili per comprendere relazioni genetiche. - Importante per studi evolutivi

Esempio di ricerca in database

Usando SQL: SELECT * FROM utenti WHERE nome LIKE '%Mario%'; Trova tutti gli utenti con 'Mario' nel nome.

Comparazione testi simili

Le stringhe possono calcolare la similarità tra documenti, utile in plagi e ricerca accademica.

Auto-correzione nei testi

Algoritmi di matching di stringhe suggeriscono correzioni quando riscontrano errori di battitura.

Rilevamento spam nelle email

Le stringhe identificano parole chiave comuni negli spam, migliorando i filtri di posta.

Text mining per analisi di sentiment

Match di stringhe con parole positive o negative per analizzare opinioni in social media.

Codifica e decodifica

Le stringhe sono utilizzate in algoritmi per codificare informazioni, cruciali per la sicurezza informatica.

Riassunti automatici di testi

Usando il matching di stringhe, i sistemi possono estrarre frasi chiave per riassumere documenti lunghi.

Analisi di dati di mercato

Le stringhe estraggono informazioni utili da recensioni di prodotti e feedback dei clienti.

Riempire il vuoto: Stringhe possono aiutare nel ___ di pattern.

Riconoscimento

Vragen in deze set(48)

1. Qual è un'applicazione delle stringhe nei motori di ricerca?

A.Filtraggio dei risultati
B.Compressione dei dati
C.Visualizzazione grafica
D.Creazione di database

2. Cos'è una stringa?

A.Una sequenza di caratteri
B.Un tipo di algoritmo
C.Un formato di file
D.Un linguaggio di programmazione

3. Quale algoritmo confronta ogni singolo valore per trovare un elemento?

A.Algoritmo di ricerca lineare
B.Ricerca binaria
C.Algoritmo Rabin-Karp
D.Algoritmo Aho-Corasick

4. Come vengono utilizzate le stringhe nel riconoscimento di pattern in immagini?

A.Per creare formati di immagine
B.Per identificare oggetti
C.Per ridimensionare le immagini
D.Per modificare i colori

5. Qual è la funzione di un pattern?

A.Cercare un modello in una stringa
B.Creare una stringa
C.Ordinare una lista
D.Codificare informazioni

6. Quale algoritmo richiede che la lista sia già ordinata?

A.Ricerca binaria
B.Algoritmo di Boyer-Moore
C.Algoritmo di ricerca lineare
D.Algoritmo KMP

7. Quale delle seguenti affermazioni è vera riguardo alla validazione degli input utente?

A.Le stringhe non sono utilizzate
B.Verifica solo numeri
C.Controlla formati specifici
D.Non sono necessarie

8. Cosa si intende per corrispondenza esatta?

A.Corrispondenza parziale
B.Corrispondenza perfetta con un pattern
C.Ricerca in una lista
D.Comparazione di stringhe

9. Che complessità ha la ricerca lineare?

A.O(n)
B.O(log n)
C.O(n * m)
D.O(n + m)

10. In che modo il matching di stringhe è utile nell'analisi di testi legali?

A.Per migliorare le presentazioni
B.Per estrarre informazioni rilevanti
C.Per ridurre i costi legali
D.Per aumentare la lunghezza dei documenti

11. Quale delle seguenti è una corrispondenza parziale?

A.'c' in 'ciao'
B.'ciao' in 'ciao'
C.'a' in 'casa'
D.'o' in 'stringa'

12. Qual è la principale differenza tra KMP e ricerca lineare?

A.KMP salta confronti inutili
B.Ricerca lineare è più veloce
C.KMP lavora solo su dati ordinati
D.Ricerca lineare usa hash

13. Quale affermazione è vera riguardo alla ricerca di stringhe?

A.È solo per testi
B.È usata per dati audio
C.È limitata a immagini
D.Non è utile per i motori di ricerca

14. Cosa sono le espressioni regolari?

A.Modelli di stringhe avanzati
B.Tipi di algoritmi
C.Formati di file
D.Tipi di database

15. Quale affermazione è vera riguardo alla ricerca binaria?

A.Richiede dati ordinati
B.Scansiona la lista linearmente
C.Può essere usata per dati non ordinati
D.Ha complessità O(n)

16. A cosa serve il matching di stringhe nella ricerca di anomalie nei log?

A.Per migliorare le prestazioni
B.Per identificare errori
C.Per aumentare il numero di log
D.Per criptare i log

17. Cosa fa un algoritmo di ricerca?

A.Trova un pattern in una stringa
B.Ordina un array
C.Crea una stringa vuota
D.Cambia un carattere

18. Quale algoritmo salta caratteri nella stringa da cercare?

A.Algoritmo di Boyer-Moore
B.Algoritmo di ricerca lineare
C.Ricerca binaria
D.Algoritmo KMP

19. In bioinformatica, il matching di stringhe è usato per:

A.Analizzare sequenze di proteine
B.Identificare sequenze di DNA simili
C.Creare nuovi organismi
D.Controllare malattie

20. Qual è il tempo di esecuzione della ricerca lineare?

A.O(n)
B.O(log n)
C.O(n^2)
D.O(1)

21. Qual è l'obiettivo del preprocessing in KMP?

A.Costruire la tabella di fallimento
B.Ordinare la stringa
C.Confrontare caratteri
D.Calcolare hash

22. Qual è un esempio di query SQL per cercare un nome specifico in un database?

A.SELECT * FROM utenti WHERE nome = 'Mario';
B.SELECT * FROM utenti WHERE nome LIKE 'Mario';
C.SELECT * FROM utenti WHERE nome LIKE '%Mario%';
D.SELECT * FROM utenti WHERE nome != 'Mario';

23. Quando si può usare la ricerca binaria?

A.Quando la stringa è ordinata
B.Quando la stringa è vuota
C.Quando ci sono caratteri jolly
D.Quando si cerca una corrispondenza parziale

24. Cosa permette di fare una ricerca con espressioni regolari?

A.Cercare pattern complessi
B.Eseguire solo ricerche lineari
C.Usare solo caratteri alfanumerici
D.Cercare solo pattern fissi

25. Cosa fa il matching di stringhe nella comparazione di testi simili?

A.Genera nuovi documenti
B.Calcola la similarità tra testi
C.Aumenta la lunghezza dei testi
D.Modifica il contenuto dei testi

26. Qual è la funzione di un vettore di spostamento?

A.Ottimizza il matching
B.Crea una stringa vuota
C.Ordina un array
D.Cambia un carattere

27. Qual è la complessità del Boyer-Moore nel caso peggiore?

A.O(n * m)
B.O(n)
C.O(log n)
D.O(n + m)

28. Come viene utilizzata la tecnologia di matching di stringhe nell'auto-correzione?

A.Sostituisce parole senza controllo
B.Suggerisce correzioni per errori di battitura
C.Ignora gli errori
D.Crea nuovi errori

29. Quale affermazione è falsa?

A.La ricerca di stringhe è utile
B.La ricerca di stringhe non è necessaria
C.Le stringhe possono essere vuote
D.I pattern possono essere complessi

30. L'algoritmo _________ è molto efficace per stringhe lunghe.

A.Boyer-Moore
B.KMP
C.Ricerca binaria
D.Rabin-Karp

31. Qual è un'applicazione delle stringhe nel rilevamento di spam nelle email?

A.Aumentare la dimensione delle email
B.Identificare parole chiave comuni
C.Creare nuovi filtri email
D.Generare risposte automatiche

32. Cosa definisce una stringa vuota?

A.Una stringa senza caratteri
B.Una stringa con un carattere
C.Una stringa con spazi
D.Una stringa lunga

33. Qual è la complessità media dell'algoritmo Rabin-Karp?

A.O(n + m)
B.O(n)
C.O(n * m)
D.O(log n)

34. Nell'analisi di sentiment, come vengono utilizzate le stringhe?

A.Per codificare informazioni
B.Per estrarre frasi chiave
C.Per analizzare parole positive o negative
D.Per modificare i dati

35. Cosa fa l'operazione di cerca e sostituisci?

A.Cambia parti di una stringa
B.Crea una stringa vuota
C.Ordina caratteri
D.Trova pattern

36. Qual è un vantaggio della ricerca binaria?

A.È veloce su dati ordinati
B.Richiede meno spazio
C.Funziona con dati non ordinati
D.Esegue ricerche lineari

37. Cosa implica la codifica e decodifica delle stringhe?

A.Trasformare dati in formati di lettura
B.Proteggere informazioni sensibili
C.Creare immagini
D.Generare nuovi testi

38. Qual è una sotto-stringa di 'ciao'?

A.'cia'
B.'o'
C.'ciao'
D.'c'

39. Cos'è l'algoritmo Aho-Corasick?

A.Cerca più pattern contemporaneamente
B.Esegue una ricerca lineare
C.Richiede dati ordinati
D.Usa solo hash

40. Come avviene il riassunto automatico dei testi?

A.Riducendo il numero di pagine
B.Escludendo tutte le informazioni
C.Estraendo frasi chiave tramite matching di stringhe
D.Cercando informazioni nei database

41. Cosa significa match totale?

A.Pattern trovato in tutta la stringa
B.Pattern parziale
C.Pattern vuoto
D.Pattern non trovato

42. KMP è più veloce di Boyer-Moore per tutte le stringhe?

A.Falso
B.Vero
C.Solo per stringhe brevi
D.Solo per stringhe lunghe

43. Qual è un uso delle stringhe nell'analisi di dati di mercato?

A.Creare pubblicità
B.Estrazione di informazioni da recensioni
C.Eliminare dati
D.Generare nuovi prodotti

44. Nell'esempio 'abcabc', dove si trova il pattern 'abc'?

A.Posizioni 0 e 3
B.Posizione 1
C.Posizion 2
D.Posizioni 0 e 2

45. Qual è un'applicazione pratica della ricerca di stringhe?

A.Filtraggio di dati
B.Ordinamento di liste
C.Compressione di file
D.Generazione di report

46. Le stringhe possono aiutare nel ___ di pattern.

A.Riconoscimento
B.Filtraggio
C.Codifica
D.Crittografia

47. Cosa rappresenta il carattere jolly '.' in regex?

A.Un carattere qualsiasi
B.Un numero
C.Una lettera specifica
D.Un pattern vuoto

48. Quale algoritmo è progettato per cercare più pattern in una stringa contemporaneamente?

A.Aho-Corasick
B.Boyer-Moore
C.Knuth-Morris-Pratt
D.Rabin-Karp

Gerelateerde sets

Maak je eigen studieset

Upload een PDF, plak je notities of beschrijf een onderwerp – AI genereert flashcards, quizzen en meer in seconden.