Skip to content

Instantly share code, notes, and snippets.

@davegotz
Created April 2, 2019 02:08
Show Gist options
  • Select an option

  • Save davegotz/ea9231c0599c2ea6bb815ea02f9486ba to your computer and use it in GitHub Desktop.

Select an option

Save davegotz/ea9231c0599c2ea6bb815ea02f9486ba to your computer and use it in GitHub Desktop.
# Get a list of names
def get_name_list():
name_list = []
name = input("Enter name #1 (or press enter to stop): ")
# Keep going until the empty string is returned by input.
while name != "":
# Append the most recent name and ask the user for the next name.
name_list.append(name.upper())
name = input("Enter name #"+str(len(name_list)+1)+" (or press enter to stop): ")
return name_list
# Returns a set of letters that are missing from all strings in name_list
def get_missing_letters(name_list):
missing_letters = set('ABCDEFGHIJKLMNOPQRSTUVWXYZ')
once_letters = set()
#print(missing_letters)
#print(once_letters)
#print("-------------------------")
for name in name_list:
# Get first and second time letters
name_letters = set(name)
first_time_letters = missing_letters & name_letters
second_time_letters = once_letters & name_letters
# Update missing and once letter sets.
missing_letters -= first_time_letters
once_letters = (once_letters | first_time_letters) - second_time_letters
#print(missing_letters)
#print(once_letters)
#print("-------------------------")
return missing_letters, once_letters
# The main function
def main():
# Get the list of first names
name_list = get_name_list()
# Get letters that appear in NO names
missing_letter_set, once_letter_set = get_missing_letters(name_list)
missing_letters = list(missing_letter_set)
missing_letters.sort()
print("Missing letters are: ", missing_letters)
once_letters = list(once_letter_set)
once_letters.sort()
print("Seen once letters are: ", once_letters)
# Run the program
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment