Localizador de Padrões
Parte da seção Fundamentos do Journey de Swift da Coddy — lição 85 de 86.
Desafio
FácilLeia duas linhas de entrada: a primeira linha é o texto no qual pesquisar e a segunda linha é o padrão a ser encontrado.
Conte quantas vezes o padrão aparece no texto, incluindo ocorrências sobrepostas, e imprima a contagem.
Requisitos:
- Leia a string de texto da primeira linha de entrada
- Leia a string do padrão da segunda linha de entrada
- Itere pelo texto e verifique o padrão em cada posição
- Conte todas as ocorrências, incluindo correspondências sobrepostas
- Imprima a contagem total como um único número inteiro
Dica: Para extrair uma substring começando no índice i com um comprimento específico, você pode usar o fatiamento de string com índices. Converta a string em um array de caracteres ou use a manipulação de índice de string do Swift para verificar se o padrão corresponde em cada posição.
Exemplo:
Se a entrada for:
ababa
abaA saída deve ser:
2O padrão "aba" aparece no índice 0 e no índice 2 em "ababa".
Experimente você mesmo
// Ler entrada
let text = readLine()!
let pattern = readLine()!
// TODO: Escreva seu código abaixo
// Contar quantas vezes o padrão aparece no texto (incluindo ocorrências sobrepostas)
// Imprimir o resultado
print(count)Todas as lições de Fundamentos
4Operadores Parte 1
Operadores AritméticosOperador de MóduloAtribuição CompostaRecapitulação - Matemática SimplesOperadores de Comparação7IO Básico
Função PrintInterpolação de StringsEntrada ReadLineConversão de TiposRecapitulação - Até 120Recapitulação - Verdadeiro ou Falso10Funções
Declarar uma FunçãoParâmetros e ArgumentosValores de RetornoRótulos de ArgumentosRecapitulação - Função SigmaRecapitulação - Função de ValidaçãoValores Padrão13Iterando sobre Sequências
Iterando sobre ElementosO Método EnumeratedIterando sobre Strings P1Iterando sobre Strings P22Variáveis
Let vs VarAnotações de TipoNúmerosStringBooleanosConvenções de NomenclaturaRecapitulação - Inicializar Variáveis5Operadores Parte 2
Operadores Lógicos Parte 1Operadores Lógicos Parte 2Recapitulação - Lógica SimplesOperadores Lógicos Parte 3Operador Ternário8Calculadora de Divisão de Conta
Mensagem de Boas-vindasObtendo Entrada11FizzBuzz com um Diferencial
Visão Geral do JogoA Função FizzBuzz3Opcionais
O que são OpcionaisDesembrulhando com If LetGuard LetOperador de Coalescência NulaRecapitulação - Desembrulho Seguro6Tomada de Decisão
Estrutura IfIf - ElseRecapitulação - Calculadora SimplesEstrutura SwitchSwitch com Intervalos9Loops
Loop For-InLoop WhileLoop Repeat-WhileBreakContinueRecapitulação - FatorialIntervalos em LoopsLoop AninhadoRecapitulação - Entrada Dinâmica12Fundamentos de Arrays
Declarando um ArrayAcessando ElementosModificando ArraysMétodos de ArrayRecapitulação - Lista de ProdutosRecapitulação - Array InvertidoTuplas15Rastreador de Despesas Diárias
Visão Geral do ProjetoSair do Programa