Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save GuillermoPena/18cb6de6442a615219a0 to your computer and use it in GitHub Desktop.
Save GuillermoPena/18cb6de6442a615219a0 to your computer and use it in GitHub Desktop.
CheckIO - Home Challenge 4 : The Most Wanted Letter
# CheckIO - Home Challenge 4 : The Most Wanted Letter
# http://checkio.org
# You are given a text, which contains different english letters and punctuation symbols.
# You should find the most frequent letter in the text. The letter returned must be in lower case.
# While checking for the most wanted letter, casing does not matter,
# so for the purpose of your search, "A" == "a".
# Make sure you do not count punctuation symbols, digits and whitespaces, only letters.
# If you have two or more letters with the same frequency, then return the letter which comes first in the latin alphabet.
# For example -- "one" contains "o", "n", "e" only once for each, thus we choose "e".
# Input: A text for analysis as a string (unicode for py2.7).
# Output: The most frequent letter in lower case as a string.
# Precondition: The password contains only ASCII symbols. 0 < len(text) ≤ 105
def checkio(text):
charList='abcdefghijklmnopqrstuvwxyz' # Chars to find
text=text.lower() # Setting text to low chars
# Looping chars
i=0 # index
total=0 # Total chars found
mainChar='' # Char most repeated
while i<len(charList) and total<len(text):
char=charList[i]
i+=1
counts=text.count(char)
total+=counts
if (mainChar == '' or counts > maxRepeats):
mainChar=char
maxRepeats=counts
return mainChar
if __name__ == '__main__':
#These "asserts" using only for self-checking and not necessary for auto-testing
assert checkio("Hello World!") == "l", "Hello test"
assert checkio("How do you do?") == "o", "O is most wanted"
assert checkio("One") == "e", "All letter only once."
assert checkio("Oops!") == "o", "Don't forget about lower case."
assert checkio("AAaooo!!!!") == "a", "Only letters."
assert checkio("abe") == "a", "The First."
print("Start the long test")
assert checkio("a" * 9000 + "b" * 1000) == "a", "Long."
print("The local tests are done.")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment