Trova il pattern
Fa parte della sezione Fondamenti del percorso Ruby di Coddy. Lezione 87 di 88.
Sfida
FacileLeggi una stringa dall'input e trova il pattern ripetuto più piccolo che forma l'intera stringa.
Un pattern valido deve:
- Avere una lunghezza che divide esattamente la lunghezza totale della stringa
- Se ripetuto il numero appropriato di volte, ricreare esattamente la stringa originale
Se la stringa è composta da un pattern ripetuto, stampa il pattern più piccolo. Se non esiste alcun pattern ripetuto, stampa la stringa originale.
Per verificare se un pattern funziona, puoi usare la moltiplicazione di stringhe: pattern * count crea una nuova stringa ripetendo il pattern.
Ad esempio, se l'input è abcabcabc, l'output dovrebbe essere:
abcSe l'input è xyxyxyxy, l'output dovrebbe essere:
xySe l'input è aaaa, l'output dovrebbe essere:
aSe l'input è hello, l'output dovrebbe essere:
helloSe l'input è abcdef, l'output dovrebbe essere:
abcdefProvalo tu
# Leggi la stringa di input
s = gets.chomp
# TODO: Scrivi il tuo codice qui sotto
# Trova il più piccolo schema ripetuto che forma l'intera stringa
# Suggerimento: controlla le lunghezze degli schemi che dividono esattamente la lunghezza della stringa
# Usa la moltiplicazione delle stringhe (pattern * count) per verificare se uno schema funziona
result = s # Sostituisci questo con la tua soluzione
# Mostra il risultato
puts resultTutte le lezioni di Fondamenti
4Operatori Parte 2
Operatori logici Parte 1Operatori logici Parte 2Riepilogo - Logica sempliceOperatori logici Parte 3Operatori logici Parte 47Calcolatore per dividere il conto
Messaggio di benvenutoAcquisire input dall'utente10FizzBuzz con un colpo di scena
Panoramica del giocoIl metodo FizzBuzz2Variabili e tipi di dato
Numeri e variabiliTipo di dato stringaTipo di dato booleanoTipo di dato SymbolVerifica dei tipi di datoConvenzioni di denominazioneRiepilogo - Creazione di variabili5Strutture decisionali
Istruzione ifIf-ElseRipasso - Calcolatrice sempliceIf-Else annidatoIstruzione unless8Cicli
Ciclo for con intervalliCiclo whilebreaknextRiepilogo - FattorialeCiclo timesCiclo untilCicli annidatiRiepilogo - Input dinamico3Operatori, parte 1
Operatori aritmeticiOperatore moduloScorciatoie aritmeticheRipasso: matematica sempliceOperatori di confronto6Input/Output di base
Output con putsOutput con print e pOutput con variabiliInput con getsMetodo chompConversione di tipoRipasso - Calcolatore dell'etàRipasso - Vero o falsoEsercitati da solo: Compilatore Ruby online