Ir para conteúdo
Fórum Script Brasil
  • 0

Letras repetidas e posição coincidentes


Ge

Pergunta

Pessoal me ajudem com esse exercício, por favor!

Escrever um programa em Python que identifica letras coincidentes em duas palavras (da entrada). Duas palavras têm letras coincidentes se na mesma posição relativa a partir do início da palavra, têm a mesma letra. Por exemplo, as palavras 'gato' e 'sapato' têm uma única letra coincidente: a letra 'a' na segunda posição da palavra.

Na saída deve indicar cada uma das letras coincidentes e a posição em que foi encontrada nas palavras em uma linha. Na última linha da entrada deve ser impresso o total de letras coincidentes e a porcentagem (nenhuma casa decimal) de letras coincidentes em relação ao total de letras das duas palavras.

Exemplos de formatação:

gatona patoto Letras coincidentes 'a' na posição 2 't' na posição 3 'o' na posição 4 Total de letras coincidentes: 3 (25%)

vale leva Letras coincidentes Total de letras coincidentes: 0 (0%)

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

depois de pegar as duas palavras da entrada, você deve fazer uma logica para saber qual palavra é a menor, em seguida usar o tamanho da palavra menor em um loop for, comparando as letras, apos isso é matemática para saber a porcentagem

Link para o comentário
Compartilhar em outros sites

  • 0

Ok beleza!, fiz essa comparação de qual a menor palavra e comparei as letras repetidas com o For.
Porém não sei como fazer ele me dá essa saída de "Letra coincidente 'x' na posição 'tal' ".. porque as letras coincidentes e as posições aparecem em listas.
Como faço pra desmembrar cada string da palavra e das posições e relacionar cada letra na posição que ela está na palavra?

# coding: utf-8
palavra1 = raw_input()
palavra2 = raw_input()
if len(palavra1) > len(palavra2):
    menor = palavra2
    x = len(menor)
for i in range(x):
    if palavra1 == palavra2:
        z = [palavra2[:x]]
        perc = int(i) * 100 / int(x)
        max = int(perc)
        
for i in z:
    i = range(x)
     print "%s %s Letras coincidentes %s na posição %s Total de letras coincidentes: %d (%d%%)" % (palavra1, palavra2, z, i, int(x),int(perc))
    break

Link para o comentário
Compartilhar em outros sites

  • 0

Muito bom amigo

Sugiro colocar um else para o if, caso a segunda palavra seja maior que a primeira 

Então você tem um loop for e uma range() usando o tamanho da menor palavra, cada ciclo do for sera o index da letra da string, uma string é uma lista

"abcde"[0] retorna 'a'

"abcde"[1] retorna 'b'

"abcde"[2] retorna 'c'

você também pode aproveitar este mesmo loop para exibir a mensagem

 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...