Programming Assignment Unit 7 (CS1101)
Programming Assignment Unit 7 (CS1101)
alphabet = "abcdefghijklmnopqrstuvwxyz"
test_dups = ["zzz","dog","bookkeeper","subdermatoglyphic","subdermatoglyphics"]
test_miss = ["zzz","subdermatoglyphic","the quick brown fox jumps over the lazy dog"]
# Downey, A. (2015). Think Python: How to think like a computer scientist. Needham,
Massachusetts:Green Tree Press.
def histogram(s):
d = dict() for c in s:
if c not in d:
d[c] = 1
else:
d[c] += 1
return d
Copy the code above into your program but write all the other code for this assignment yourself. Do
not copy any code from another source.
Part 1
Write a function called has_duplicates that takes a string parameter and returns True if the string has
any repeated characters.Otherwise, it should return False.
Implement has_duplicates by creating a histogram using the histogram function above. Do not use
any of the implementations of has_duplicates that are given in your textbook. Instead, your
implementation should use the counts in the histogram to decide if there are any duplicates.
Write a loop over the strings in the provided test_dups list. Print each string in the list and whether or
not it has any duplicates based on the return value of has_duplicates for that string. For example, the
output for "aaa" and "abc" would be the following.
Print a line like one of the above for each of the strings in test_dups.
def histogram(s):
d = dict()
for c in s:
if c not in d:
d[c] = 1
else:
d[c] += 1
return d
def has_duplicates(s):
if 'aaa' in histogram(s):
return True
else:
return False
def test_dups_loop():
for s in test_dups:
Part 2
Write a function called missing_letters that takes a string parameter and returns a new string with all
the letters of the alphabet that are not in the argument string. The letters in the returned string
should be in alphabetical order.
Your implementation should use a histogram from the histogram function. It should also use the
global variable alphabet. It should use this global variable directly, not through an argument or a local
copy. It should loop over the letters in alphabet to determine which are missing from the input
parameter.
The function missing_letters should combine the list of missing letters into a string and return that
string.
Write a loop over the strings in list test_miss and call missing_letters with each string. Print a line for
each string listing themissing letters. For example, for the string "aaa", the output should be the
following.
If the string has all the letters in alphabet, the output should say it uses all the letters. For example,
the output for the stringalphabet itself would be the following.
Print a line like one of the above for each of the strings in test_miss.
def missing_letters(s):
r = list('abcdefghijklmnopqrstuvwxyz')
s = s.lower()
for c in s.lower():
if c in r:
return ''.join(r)
def test_miss_loop():
for s in test_miss:
def main():
test_dups_loop()
test_miss_loop()