Created
April 2, 2019 02:08
-
-
Save davegotz/ea9231c0599c2ea6bb815ea02f9486ba to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # 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