Localizador de Padrões
Parte da seção Fundamentos do Journey de R da Coddy — lição 77 de 78.
Desafio
FácilCrie uma função chamada count_pattern que recebe dois argumentos: text e pattern. A função deve retornar o número de vezes que o padrão aparece no texto, incluindo ocorrências sobrepostas.
Você receberá duas linhas de entrada:
- A string de texto onde a busca será realizada
- A string de padrão a ser buscada
Chame sua função com as entradas fornecidas e imprima o resultado.
Dicas:
- Use
nchar()para obter o comprimento das strings - Use
substr(text, start, stop)para extrair substrings - Itere por cada posição inicial válida e verifique se a substring corresponde ao padrão
Por exemplo, se a entrada for:
ababa
abaA saída deve ser:
2Explicação: O padrão "aba" aparece na posição 1 (ababa) e na posição 3 (ababa), portanto, a contagem é 2.
Se a entrada for:
mississippi
issiA saída deve ser:
2Experimente você mesmo
# Ler a entrada
con <- file("stdin", "r")
text <- suppressWarnings(readLines(con, n = 1))
pattern <- suppressWarnings(readLines(con, n = 1))
close(con)
# TODO: Criar uma função chamada count_pattern que recebe text e pattern
# e retorna a contagem de ocorrências sobrepostas de pattern em text
# Chamar a função e imprimir o resultado
print(count_pattern(text, pattern))Todas as lições de Fundamentos
4Operadores Parte 2
Operadores Lógicos (AND, OR)Operadores Lógicos Parte 2 (NOT)Recapitulação - Lógica SimplesLógica Vetorizada Parte 1Lógica Vetorizada Parte 27Calculadora de Divisão de Conta
Mensagem de Boas-vindasObtendo a Entrada do Usuário10FizzBuzz com um Toque Especial
Visão Geral do JogoA Função FizzBuzz2Variáveis e Tipos de Dados
Tipo de Dado NuméricoTipo de Dado InteiroTipo de Dado CaractereTipo de Dado LógicoVerificando Tipos de DadosConvenções de NomenclaturaValores Ausentes: NARecapitulação - Criação de Variáveis8Laços de Repetição
Laço ForLaço WhileBreakNext (Continue)Recapitulação - FatorialGeração de Sequências (seq, :)Laços AninhadosRecapitulação - Entrada Dinâmica3Operadores Parte 1
Operadores AritméticosDivisão Inteira e MóduloOperadores de AtribuiçãoRecapitulação - Matemática SimplesOperadores de Comparação6IO Básico
Saída com PrintCat para SaídaSaída com VariáveisLendo Entrada com readline()Básico de Conversão de TiposRecapitulação - Calculadora de IdadeRecapitulação - Verdadeiro ou Falso9Funções
Declarando uma FunçãoArgumentos de FunçãoValores de RetornoRecapitulação - Função SigmaRecapitulação - Função de ValidaçãoValores de Parâmetro Padrão