Tutte le sfide
Difficile 0 risolte 0% di accettazione

Trova Molti Pattern nel Testo

Per ogni pattern richiesto, determina se appare come sottostringa contigua in qualsiasi punto del testo condiviso.

Per ogni pattern richiesto, determina se appare come sottostringa contigua in qualsiasi punto del testo condiviso. I pattern possono sovrapporsi e possono ripetersi. Restituisci i risultati nell'ordine originale delle query. I limiti richiedono un approccio che possa gestire molti pattern in modo efficiente.

Implementa find_many_patterns(text, patterns).

Input

text: Il testo su cui vengono effettuate tutte le ricerche.

patterns: I pattern, nell'ordine delle query.

Output

Restituisci YES per ogni pattern presente e NO per ciascuno assente.

Vincoli

1…100.000 caratteri nel testo. 1…100.000 pattern non vuoti, con lunghezza totale al massimo 500.000. Tutti i caratteri sono lettere minuscole da a a z.

Esempi

Esempio 1
Input:
text = "bananas"
patterns = ["ana", "apple", "nas"]

Output atteso:
expected = ["YES", "NO", "YES"]
Input:
std::string text = "bananas";
std::vector<std::string> patterns = {"ana", "apple", "nas"};

Output atteso:
std::vector<std::string> expected = {"YES", "NO", "YES"};
Input:
string text = "bananas";
string[] patterns = new string[] {"ana", "apple", "nas"};

Output atteso:
string[] expected = new string[] {"YES", "NO", "YES"};

Spiegazione

Ana compare a partire dalla posizione 2 e nas dalla posizione 5 (le posizioni qui partono da 1). Apple non compare mai.

Esempio 2
Input:
text = "aaaa"
patterns = ["aa", "aaaaa", "aa"]

Output atteso:
expected = ["YES", "NO", "YES"]
Input:
std::string text = "aaaa";
std::vector<std::string> patterns = {"aa", "aaaaa", "aa"};

Output atteso:
std::vector<std::string> expected = {"YES", "NO", "YES"};
Input:
string text = "aaaa";
string[] patterns = new string[] {"aa", "aaaaa", "aa"};

Output atteso:
string[] expected = new string[] {"YES", "NO", "YES"};

Spiegazione

Aa compare anche in caso di corrispondenze sovrapposte. Cinque caratteri a non possono entrare in un testo di quattro caratteri. La query ripetuta aa riceve la stessa risposta.

Riferimenti

Questa sfida è adattata per CodeUtility. Segui la traccia e i vincoli sopra.

Impara dagli altri

Soluzioni della community

Nessuna soluzione pubblicata. Risolvi questa sfida per condividere la prima.