ForHosting KIT · Testi e IA

Rilevatore sottostringa ripetuta

Scopra se una stringa è solo un frammento scritto più e più volte: ababab è ab tre volte e aaaa è a quattro volte, mentre aba non si ripete. Ottiene l'unità più piccola e il conteggio esatto. Gratis nel suo browser.

  • Gratis
  • Funziona nel suo browser
  • Senza registrazione
  • I suoi dati restano sul dispositivo
Usalo da WebAPIEmailTelegramApp presto
Se inserisce
Testo
ababab
Ottiene
Unità di lunghezza
2
Quantità
3
Lunghezza
6

Molti problemi da colloquio e controlli di pulizia dei dati pongono una domanda semplice: questa stringa è solo un frammento più corto scritto più e più volte? Stringhe come ababab, aaaa e xyzxyzxyz sono costruite così; abc e aba no. Questo rilevatore di pattern di sottostringa ripetuta accetta un unico campo di testo non vuoto, esegue un'analisi deterministica del bordo KMP (più lungo prefisso-suffisso proprio) e restituisce l'unità ripetitiva più piccola insieme al conteggio esatto delle ripetizioni. Non vi è chiamata di rete, casualità né dipendenza dall'orologio: solo aritmetica di stringhe che Lei può rieseguire byte per byte.

Che cos'è un pattern di sottostringa ripetuta e come si sceglie l'unità

Una stringa ha un pattern di sottostringa ripetuta quando coincide con qualche unità non vuota scritta da un capo all'altro almeno due volte, senza caratteri residui. Ad esempio ababab è l'unità ab scritta tre volte, aaaa è l'unità a scritta quattro volte e xyzxyz è l'unità xyz scritta due volte. Il rilevatore restituisce sempre l'unità più piccola di questo tipo: se una stringa può essere ricoperta sia da ab sia da abab, la risposta è ab con un conteggio maggiore, non il candidato più lungo.

Quando nessuna unità più corta copre l'intera lunghezza, la stringa è segnalata come non ripetuta: unit è uguale al testo originale e count è uguale a uno. Il test classico in tempo lineare costruisce la tabella KMP del più lungo prefisso-suffisso proprio per la stringa di lunghezza n, definisce period come n meno la lunghezza del bordo finale e verifica se period divide n ed è strettamente minore di n. Se entrambe le condizioni valgono, l'unità è il prefisso di lunghezza period e il conteggio è n diviso per period.

Ciò coincide con la scansione a forza bruta dei divisori che prova ogni lunghezza da uno fino al pavimento di n su due, ma resta O(n) e non dipende mai da orologi fluttuanti o semi casuali. Le stringhe di un solo carattere e i risultati vuoti di validazione sono gestiti esplicitamente: la lunghezza uno non può essere una ripetizione non banale, e il testo vuoto o mancante viene rifiutato prima di qualsiasi lavoro LPS.

Dove un rilevatore di pattern ripetuto produce valore

La preparazione ai colloqui e i corsi di algoritmi usano questo problema per insegnare bordi, periodi e argomenti sui divisori; un rilevatore live consente agli studenti di confrontare ababab e aba senza costruire a mano tabelle LPS sotto pressione di tempo. Docenti e autori LMS necessitano di un oracolo deterministico che restituisca sia il flag booleano del pattern sia l'unità concreta, così i correttori automatici accettano qualsiasi spiegazione corretta che nomini lo stesso frammento più piccolo.

Le pipeline di qualità dei dati segnalano colonne che sembrano ripetizioni accidentali di copia e incolla (SKU SKU SKU, yesyesyes) prima che inquinino indici di ricerca o analytics. Le dimostrazioni di compressione e codifica illustrano una struttura in stile run-length senza pretendere di essere un compressore completo: mostrare che xyzxyzxyz sono tre copie di xyz basta spesso per una diapositiva di lezione. La validazione fallita non consuma il saldo.

Pratica per colloqui e algoritmi

Verifichi se una stringa è un pattern ripetuto non banale e nomini l'unità più piccola e il conteggio rispetto alle soluzioni da manuale KMP e divisori.

Qualità dei dati e collages duplicati

Segnali celle o token che sono pure ripetizioni di un frammento più corto prima che entrino in indici, cataloghi o analytics.

Come si rileva un pattern di sottostringa ripetuta?

Invii una stringa non vuota nel campo text. Quando la stringa non è una ripetizione non banale, unit è la stringa completa e count è 1.

Che cos'è l'unità ripetitiva più piccola?

È il prefisso non vuoto più corto che ricopre l'intera stringa senza resto. Per ababab l'unità è ab (non abab). Per aaaa l'unità è a.

Quale algoritmo usa il rilevatore?

Un test di periodo KMP del più lungo prefisso-suffisso proprio (LPS): se period = n - lps[n-1] divide n ed è più corto di n, l'unità è il prefisso di quella lunghezza. Equivale a provare ogni lunghezza divisore, ma in tempo lineare.

Che cosa ottengo se la stringa non si ripete?

Una risposta normale, non un errore: il risultato indica che non c'è ripetizione, l'unità è l'intera stringa e il conteggio è uno. Le stringhe uniche comuni, come abc, vengono trattate allo stesso modo.

L'unità deve coprire tutta la stringa?

Sì. Una stringa conta come ripetuta solo quando l'unità, scritta almeno due volte di seguito, la copre senza lasciare caratteri in avanzo. Per questo aba non è una ripetizione, anche se inizia e finisce con a.

Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.

POSThttps://api.kit.forhosting.com/dev/repeated-substring

Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.

curl -X POST https://api.kit.forhosting.com/dev/repeated-substring \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"ababab"}'
{
  "text": "ababab"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev.repeated_substring",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.

per richiesta$0.002

Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.

HTTPCodiceSignificato
401unauthorizedChiave API mancante o non valida: controlla l'header Authorization.
402insufficient_balanceCredito esaurito: ricarica per continuare a eseguire attività.
404unknown_typeTipo di attività sconosciuto: controlla il campo type della richiesta.
429rate_limitedTroppe richieste in poco tempo: rallenta e riprova tra qualche secondo.

Quando nessuna unità più corta ricopre l'intera stringa, la risposta imposta is_repeated a false, unit al testo completo e count a uno, così chi chiama ottiene sempre un contratto stabile.

Che cos'è un pattern di sottostringa ripetuta e come si sceglie l'unità

Quel contratto è più amichevole per le pipeline di un errore duro sui non-pattern, perché chi chiama può ramificare su is_repeated senza trattare le stringhe uniche ordinarie come input non valido.

Contratto di input, campi di risposta e comportamento di errore

Esempio: aaaa produce unit a e count quattro. Mantenga gli input sotto il tetto di caratteri documentato; i collages troppo grandi falliscono con un messaggio di limite esplicito anziché un taglio silenzioso troncato. Invii in POST un corpo JSON con un campo text obbligatorio contenente una stringa non vuota. Gli alias input, string, value, s e source sono accettati affinché moduli di query, fogli di calcolo e wrapper SDK tipizzati riutilizzino lo stesso contratto senza rinominare le colonne. I numeri finiti e i bigint vengono prima convertiti in stringa, così un codice prodotto digitato come numero nudo si analizza in modo pulito; booleani, oggetti semplici e array sono rifiutati affinché un corpo JSON errato non diventi la parola true né un dump di oggetto poco utile. Stringhe vuote e text mancante falliscono con invalid_input e non vengono addebitati. In caso di successo il corpo include text (eco della stringa analizzata), is_repeated (true quando count è almeno due), unit (il più piccolo frammento ripetitivo, o la stringa completa quando non è ripetuta), unit_length, count, length del testo originale e method fisso a kmp_period per log e pipeline multi-strumento. Esempio: ababab produce unit ab, unit_length due, count tre, is_repeated true. Esempio: abc produce unit abc, count uno, is_repeated false. Abbini l'esecuzione gratuita nel browser su questa pagina all'API a pagamento quando Le serve la stessa unità e lo stesso conteggio in CI, script di valutazione o worker di bordo senza reimplementare KMP da sé.

Dove un rilevatore di pattern ripetuto produce valore

Poiché l'implementazione è parse pura di livello A, ogni chiamata riuscita costa il prezzo base pubblicato $0.002, senza token di modello e senza rete in uscita.

Valutazione automatica LMS e compiti

Valuti gli item di sottostringa ripetuta con un oracolo deterministico che restituisce unit, count e is_repeated per un confronto stabile.

E se la stringa non è ripetuta?

La chiamata ha comunque successo: is_repeated è false, unit è uguale al testo originale e count è 1. Solo text mancante o vuoto è invalid_input.

Quanto costa il rilevatore di pattern di sottostringa ripetuta?

Lo strumento nel browser è gratuito. Le richieste API usano il saldo prepagato KIT a $0.002 per chiamata riuscita; l'input non valido non viene addebitato.

Leggi la documentazione completa del KIT →