Buscador de patrones
Parte de la sección Fundamentos del Journey de Swift de Coddy — lección 85 de 86.
Desafío
FácilLee dos líneas de entrada: la primera línea es el texto en el que se va a buscar y la segunda línea es el patrón a encontrar.
Cuenta cuántas veces aparece el patrón en el texto, incluyendo las ocurrencias superpuestas, e imprime el conteo.
Requerimientos:
- Lee la cadena de texto de la primera línea de entrada
- Lee la cadena del patrón de la segunda línea de entrada
- Itera a través del texto y verifica el patrón en cada posición
- Cuenta todas las ocurrencias, incluyendo las coincidencias superpuestas
- Imprime el conteo total como un solo número entero
Sugerencia: Para extraer una subcadena que comience en el índice i con una longitud específica, puedes usar el rebanado de cadenas (slicing) con índices. Convierte la cadena en un arreglo de caracteres o usa la manipulación de índices de cadenas de Swift para verificar si el patrón coincide en cada posición.
Ejemplo:
Si la entrada es:
ababa
abaLa salida debería ser:
2El patrón "aba" aparece en el índice 0 y en el índice 2 en "ababa".
Pruébalo tú mismo
// Leer entrada
let text = readLine()!
let pattern = readLine()!
// TODO: Escribe tu código a continuación
// Cuenta cuántas veces aparece el patrón en el texto (incluyendo ocurrencias superpuestas)
// Imprimir el resultado
print(count)Todas las lecciones de Fundamentos
4Operadores Parte 1
Operadores aritméticosOperador de móduloAsignación compuestaResumen - Matemáticas simplesOperadores de comparación7E/S Básica
Función PrintInterpolación de StringsEntrada ReadLineConversión de TiposRepaso - Hasta 120Repaso - Verdadero o Falso10Funciones
Declarar una funciónParámetros y argumentosValores de retornoEtiquetas de argumentosResumen - Función SigmaResumen - Función de validaciónValores por defecto13Iterar sobre secuencias
Iterar sobre elementosEl método enumerateIterar sobre cadenas P1Iterar sobre cadenas P22Variables
Let vs VarAnotaciones de tiposNúmerosStringsBooleanosConvenciones de nomenclaturaResumen - Inicializar variables5Operadores Parte 2
Operadores lógicos Parte 1Operadores lógicos Parte 2Repaso - Lógica simpleOperadores lógicos Parte 3Operador ternario8Calculadora para dividir la cuenta
Mensaje de bienvenidaObtener la entrada de datos11FizzBuzz con un giro
Descripción general del juegoLa función FizzBuzz3Opcionales
Qué son los opcionalesDesempaquetado con If LetGuard LetOperador de coalescencia nulaResumen - Desempaquetado seguro6Toma de decisiones
Sentencia IfIf - ElseRepaso - Calculadora simpleSentencia SwitchSwitch con rangos9Bucles
Bucle For-InBucle WhileBucle Repeat-WhileBreakContinueRepaso - FactorialRangos en buclesBucle anidadoRepaso - Entrada dinámica