Trova lo schema
Fa parte della sezione Fondamenti del percorso Swift di Coddy. Lezione 85 di 86.
Sfida
FacileLeggi due righe di input: la prima riga è il testo in cui cercare e la seconda riga è il pattern da trovare.
Conta quante volte il pattern compare nel testo, incluse le occorrenze sovrapposte, e stampa il conteggio.
Requisiti:
- Leggi la stringa di testo dalla prima riga di input
- Leggi la stringa del pattern dalla seconda riga di input
- Scorri il testo e controlla se il pattern è presente in ogni posizione
- Conta tutte le occorrenze, incluse quelle sovrapposte
- Stampa il conteggio totale come un singolo intero
Suggerimento: Per estrarre una sottostringa che inizia dall'indice i e ha una lunghezza specifica, puoi usare lo slicing delle stringhe con gli indici. Converti la stringa in un array di caratteri oppure usa la manipolazione degli indici delle stringhe di Swift per verificare se il pattern corrisponde in ogni posizione.
Esempio:
Se l'input è:
ababa
abaL'output dovrebbe essere:
2Il pattern "aba" compare all'indice 0 e all'indice 2 in "ababa".
Provalo tu
// Leggi l'input
let text = readLine()!
let pattern = readLine()!
// TODO: Scrivi il tuo codice qui sotto
// Conta quante volte il pattern compare nel testo (incluse le occorrenze sovrapposte)
// Stampa il risultato
print(count)Tutte le lezioni di Fondamenti
4Operatori – Parte 1
Operatori aritmeticiOperatore moduloAssegnazione compostaRiepilogo - Matematica sempliceOperatori di confronto7I/O di base
Funzione printInterpolazione di stringheInput con ReadLineConversione di tipoRipasso - Fino a 120Ripasso - Vero o falso10Funzioni
Dichiarare una funzioneParametri e argomentiValori restituitiEtichette degli argomentiRiepilogo - Funzione SigmaRiepilogo - Funzione di validazioneValori predefiniti13Iterare sulle sequenze
Iterare sugli elementiIl metodo enumerateIterare sulle stringhe P1Iterare sulle stringhe P22Variabili
Let vs VarAnnotazioni di tipoNumeriStringaBooleanoConvenzioni di denominazioneRiepilogo - Inizializzare le variabili5Operatori Parte 2
Operatori logici Parte 1Operatori logici Parte 2Riepilogo - Logica sempliceOperatori logici Parte 3Operatore ternario8Calcolatore per dividere il conto
Messaggio di benvenutoAcquisire i dati11FizzBuzz con una variante
Panoramica del giocoLa funzione FizzBuzz3Valori opzionali
Cosa sono i valori opzionaliEstrazione del valore con if letGuard letOperatore di coalescenza nilRiepilogo - Estrazione sicura del valore6Decisioni
Istruzione ifIf - ElseRipasso - Calcolatrice sempliceIstruzione switchSwitch con intervalli9Cicli
Ciclo for-inCiclo whileCiclo repeat-whileBreakContinueRipasso - FattorialeIntervalli nei cicliCiclo annidatoRipasso - Input dinamicoEsercitati da solo: Playground Swift