ForHosting KIT · Testi e IA

Verificare la rotazione di stringhe

Una rotazione di stringa conserva tutti i caratteri nello stesso ordine circolare, spostando però un prefisso dall’inizio alla fine o, in modo equivalente, un suffisso all’inizio.

● BetaGratis · nel tuo browser
Usalo da WebAPIEmailTelegramApp presto

Questo strumento confronta due stringhe e indica se la seconda si può ottenere ruotando la prima di un numero qualsiasi di posizioni, compreso zero. Il confronto è esatto: maiuscole, spazi, punteggiatura e caratteri Unicode restano significativi. Poiché una rotazione non aggiunge né rimuove caratteri, lunghezze diverse producono un chiaro errore di convalida anziché un risultato negativo.

Che cosa si intende per rotazione di stringa

Una rotazione cambia il punto iniziale di una stringa senza modificare la sequenza circolare dei caratteri. Per esempio, ruotando “waterbottle” e portando i primi tre caratteri alla fine si ottiene “erbottlewat”. La candidata contiene esattamente gli stessi caratteri nello stesso ordine ciclico; cambia soltanto il confine tra fine e inizio. Anche una rotazione di zero posizioni è valida, quindi ogni stringa è sempre una rotazione di sé stessa. I caratteri ripetuti non cambiano la regola, anche se possono far sì che più posizioni producano lo stesso risultato visibile. Questa verifica è più rigorosa del controllo di due anagrammi. Gli anagrammi possono riordinare liberamente i caratteri, mentre le rotazioni ne conservano l’ordine lungo il ciclo. Il confronto è inoltre letterale e distingue maiuscole e minuscole. Spazi, punteggiatura, caratteri combinati e interruzioni di riga partecipano al confronto. Inserisca il valore originale in `first` e quello candidato in `second`; il risultato contiene un solo valore booleano `is_rotation`.

Come viene eseguita la verifica

Lo strumento convalida innanzitutto che entrambi i campi siano stringhe e abbiano la stessa lunghezza. L’uguaglianza delle lunghezze è necessaria, perché una rotazione non inserisce né elimina caratteri. Se le lunghezze differiscono, la richiesta viene respinta come input non valido: in questo modo si distingue un confronto malformato da una candidata legittima di pari lunghezza che semplicemente non è una rotazione. Per gli input validi, l’implementazione cerca la candidata durante due passaggi consecutivi sulla stringa originale. Ogni possibile rotazione deve comparire in questo spazio di ricerca circolare. Una tabella dei prefissi evita di ricominciare dal carattere successivo dopo ogni corrispondenza parziale fallita, garantendo un comportamento lineare e deterministico rispetto alla lunghezza. Non vengono usati servizi di rete, modelli linguistici o regole locali e il testo non viene normalizzato. La stessa sequenza di unità di codice restituisce quindi sempre la medesima risposta. Due stringhe vuote sono rotazioni reciproche e due stringhe identiche soddisfano il caso valido dello spostamento nullo.

Interpretare i risultati e preparare l’input

Il risultato `true` significa che esiste almeno uno spostamento circolare di `first` il cui valore completo coincide con `second`. Il risultato `false` indica che le stringhe hanno la stessa lunghezza, ma nessuno spostamento produce una corrispondenza esatta. Prima di confrontare testi provenienti da fonti diverse, valuti se il confronto letterale rappresenta davvero il problema da risolvere. Questa capacità non elimina gli spazi, non uniforma maiuscole e minuscole, non rimuove la punteggiatura e non applica la normalizzazione Unicode, perché tali trasformazioni cambierebbero silenziosamente le stringhe fornite. Se l’applicazione considera equivalenti “A” e “a”, oppure tratta allo stesso modo le forme Unicode composte e scomposte, normalizzi entrambi i valori in modo coerente prima dell’invio. Conservi gli spazi iniziali o finali quando fanno parte di identificatori o sequenze codificate. Il prezzo base dell’API è $0.002 per richiesta, mentre la versione browser esegue localmente la stessa logica deterministica. Nei test includa rotazioni positive, casi negativi di pari lunghezza, caratteri ripetuti, stringhe identiche e l’errore per lunghezze diverse.

Convalidare l’output di un buffer circolare

Confermi che un buffer acquisito contenga la sequenza prevista anche quando la lettura è iniziata in un altro punto del ciclo.

Verificare esercizi di programmazione

Controlli le risposte ai problemi di rotazione senza confondere l’ordine circolare con il confronto libero degli anagrammi.

Confrontare identificatori ciclici

Stabilisca se due rappresentazioni di pari lunghezza descrivono lo stesso ciclo ripetuto da punti iniziali differenti.

Una stringa invariata conta come rotazione?

Sì. È ammessa una rotazione di zero posizioni, quindi ogni stringa è una rotazione di sé stessa.

Maiuscole e minuscole sono considerate uguali?

No. Il confronto è esatto e sensibile alle maiuscole, quindi le rispettive unità di codice sono differenti.

Che cosa accade con lunghezze diverse?

La capacità restituisce un errore di input non valido, perché una rotazione non può cambiare il numero di caratteri.

Una rotazione di stringa equivale a un anagramma?

No. Una rotazione conserva l’ordine circolare, mentre un anagramma può riordinare liberamente i caratteri.

Le stringhe vuote contano come rotazioni?

Sì. Due stringhe vuote hanno la stessa lunghezza e coincidono con una rotazione di zero posizioni.

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/text/string-rotation-check

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/text/string-rotation-check \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"first":"waterbottle","second":"erbottlewat"}'
{
  "first": "waterbottle",
  "second": "erbottlewat"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "text.string_rotation_check",
  "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.

max_tokens20000
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.

Leggi la documentazione completa del KIT →