Encontrando 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 móduloAtribuição compostaRecapitulação - Matemática simplesOperadores de comparação7Entrada e Saída Básicas
Função printInterpolação de stringsEntrada com readlineConversão de tiposRecapitulação - Até 120Recapitulação - Verdadeiro ou falso10Funções
Declare uma funçãoParâmetros e argumentosValores de retornoRótulos de argumentosRevisão - função SigmaRevisão - função de validaçãoValores padrão13Iterando sobre Sequências
Iterando sobre ElementosO Método EnumeradoIterando sobre Strings P1Iterando sobre Strings P22Variáveis
Let vs VarAnotações de tipoNúmerosStringBooleanoConvenções de nomenclaturaRecapitulação - Inicializar variáveis5Operadores — Parte 2
Operadores lógicos — Parte 1Operadores lógicos — Parte 2Revisão — Lógica simplesOperadores lógicos — Parte 3Operador ternário8Calculadora de Divisão da Conta
Mensagem de Boas-vindasObtendo Dados de Entrada11FizzBuzz com um Toque Especial
Visão Geral do JogoA Função FizzBuzz3Optionais
O que são OptionaisDesembrulhando com If LetGuard LetOperador de Coalescência de NilRecapitulação - Desembrulhamento Seguro6Tomada de Decisões
Instrução IfIf - ElseRecapitulação - Calculadora SimplesInstrução SwitchSwitch com Intervalos9Laços de Repetição
Laço For-InLaço WhileLaço Repeat-WhileBreakContinueRevisão - FatorialIntervalos em LaçosLaço AninhadoRevisão - Entrada Dinâmica12Fundamentos de Arrays
Declarando um ArrayAcessando ElementosModificando ArraysMétodos de ArrayRevisão - Lista de ProdutosRevisão - Array InvertidoTuplas15Rastreador de Despesas Diárias
Visão Geral do ProjetoSair do ProgramaPratique por conta própria: Playground de Swift