You are on page 1of 3

Comece com o seguinte código Python.

alfabeto = "abcdefghijklmnopqrstuvwxyz"

test_dups = ["zzz","cão","contador","subdermáglifo","subdermaglifos"]

test_miss = ["zzz","subdermatoglif","a raposa marrom rápida salta sobre o cão preguiçoso"]

# Da Seção 11.2 de:

# Downey, A. (2015). Pense em Python: Como pensar como um cientista da computação. Needham,
Massachusetts: Green Tree Press.

histograma(s) def:

d = dict() para c em s:

Se C não estiver em D:

d[c] = 1

mais:

d[c] += 1

retornar d

Copie o código acima em seu programa, mas escreva todos os outros códigos para essa atribuição
você mesmo. Não copie nenhum código de outra fonte.

Parte 1
Escreva uma função chamada has_duplicates que usa um parâmetro string e retorna True se a cadeia
de caracteres tiver caracteres repetidos. Caso contrário, ele deve retornar False.

Implemente has_duplicates criando um histograma usando a função de histograma acima. Não use
nenhuma das implementações de has_duplicates que são dadas em seu livro didático. Em vez disso,
sua implementação deve usar as contagens no histograma para decidir se há duplicatas.

Escreva um loop sobre as cadeias de caracteres na lista de test_dups fornecida. Imprima cada cadeia
de caracteres na lista e se ela tem ou não duplicatas com base no valor de retorno de has_duplicates
para essa cadeia de caracteres. Por exemplo, a saída para "aaa" e "abc" seria a seguinte.

AAA tem duplicatas

ABC não tem duplicatas

Imprima uma linha como uma das acima para cada uma das cadeias de caracteres em test_dups.
histograma(s) def:

d = ditado()

Para C em S:

Se C não estiver em D:

d[c] = 1

mais:

d[c] += 1

retornar d

def has_duplicates(s):

Se «AAA» no(s) histograma(s):

retorno True

mais:

retornar Falso

def test_dups_loop():

Para s em test_dups:

impressão(s + ':', has_duplicates(s))

Parte 2
Escreva uma função chamada missing_letters que usa um parâmetro string e retorna uma nova string
com todas as letras do alfabeto que não estão na string de argumento. As letras na cadeia de
caracteres retornada devem estar em ordem alfabética.

Sua implementação deve usar um histograma da função histograma. Ele também deve usar o alfabeto
variável global. Ele deve usar essa variável global diretamente, não por meio de um argumento ou
uma cópia local. Ele deve fazer um loop sobre as letras do alfabeto para determinar quais estão
faltando no parâmetro de entrada.
A função missing_letters deve combinar a lista de letras ausentes em uma cadeia de caracteres e
retornar essa cadeia de caracteres.

Escreva um loop sobre as cadeias de caracteres na lista test_miss e chame missing_letters com cada
cadeia de caracteres. Imprima uma linha para cada cadeia de caracteres listando as letras ausentes.
Por exemplo, para a cadeia de caracteres "aaa", a saída deve ser a seguinte.

aaa está faltando letras bcdefghijklmnopqrstuvwxyz

Se a cadeia de caracteres tiver todas as letras no alfabeto, a saída deve dizer que usa todas as letras.
Por exemplo, a saída para o alfabeto de cadeia de caracteres em si seria a seguinte.

abcdefghijklmnopqrstuvwxyz usa todas as letras

Imprima uma linha como uma das acima para cada uma das cadeias de caracteres em test_miss.

def missing_letters(s):

r = lista('abcdefghijklmnopqrstuvwxyz')

s = s.lower()

para c em s.lower():

Se C em R:

r.remove(c) # a primeira instância correspondente

retornar ''.join(r)

def test_miss_loop():

Para s em test_miss:

impressão(s + ':', missing_letters(s))

def principal():

test_dups_loop()

test_miss_loop()

You might also like