出力文字列で最も多く出現する文字

1795 ワード

タイトル:指定した文字列の中で最も出現回数の多い文字(大文字と小文字にかかわらず)を出力し、文字列には大文字と小文字が存在する可能性があり、出現回数の同じ文字が存在する場合、アルファベット表の順序でアルファベット表の前にある文字を出力します.

import string
def checkio(text):
    alpha=['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
    #replace this for solution
    #                  
    #text=text.lower()
    #alpha=string.ascii_lowercase
    #return max(alpha,key=text.count)

    max_str=[0,0]
    for i in range(26):
        if text.lower().count(alpha[i]) > max_str[1] :
             max_str[0]=alpha[i]
             max_str[1]=text.lower().count(alpha[i])
    return max_str[0]


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.")