Created
May 28, 2014 09:08
-
-
Save GuillermoPena/18cb6de6442a615219a0 to your computer and use it in GitHub Desktop.
CheckIO - Home Challenge 4 : The Most Wanted Letter
This file contains 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
# 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