Faça um programa que dado 2 palavras, determine:
Verifique se a segunda palavra é uma sub string da primeira:
Exemplo: Palavra 1= casamento
Palavra 2 = casa

Passo 1

Beleza, então o problema é: a gente recebe duas palavras e tem que descobrir se a segunda aparece dentro da primeira, como “casa” dentro de “casamento”. Isso é um lance de manipulação de strings, mais especificamente de busca de substring. Para resolver isso, vamos precisar entender o que é substring e como comparar pedaços de texto.

Passo 2

Teoria da substring:
Uma string exists, i in [0, n-m] ;tal que; forall, j in [0, m-1],; S[i+j] = P[j] de tamanho contém outra string de tamanho como substring se existir um índice (com ) tal que, para todo de até , o caractere seja igual a . Em pseudo-fórmula:
Na prática, a gente varre a string maior, pega pedaços de tamanho igual à da string menor e compara.

Passo 3

Vamos mostrar o passo a passo em pseudo-código bem simples:
  1. Ler a string grande (tamanho ) e a string menor (tamanho ).
  2. Se , já dá pra dizer que não é substring (não cabe).
  3. Para cada posição de 0 até :
    3.1. Extrair o pedaço .
    3.2. Se esse pedaço for igual a , concluímos que é substring e paramos.
  4. Se nenhum pedaço bateu, não é substring.
Em notação mais direta (estilo Python):
para i de 0 até n-m:
    se S[i : i + m] == P:
        retorna “É substring”
retorna “Não é substring”

Passo 4

Vamos aplicar com S = “casamento” e P = “casa”:
  • , .
  • i = 0: S[0:4] = “casa” → bate com P = “casa”!
    Então já encontramos na primeira tentativa.

Resposta

Sim, “casa” é uma substring de “casamento”.

Exercícios relacionados