単語の学習(1157)


質問する


アルファベットの大文字と小文字の単語を指定した場合は、この単語で最も使用されるアルファベットが何であるかを決定するプログラムを作成します.ただし、大文字と小文字は区別されません.
  • 入力
  • 첫째 줄에 알파벳 대소문자로 이루어진 단어가 주어진다. 주어지는 단어의 길이는 1,000,000을 넘지 않는다.
  • 出力
  • 첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다. 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력한다.
    入力
  • 例1
  • Mississipi
  • 例出力1
  • ?
    入力
  • 例2
  • zZa
  • 例出力2
  • Z
    入力
  • 例3
  • z
  • 例出力3
  • Z
    入力
  • 例4
  • baaa
  • 例出力4
  • A
  • 最初の試み
  • word = input().lower()
    maxCnt = 0
    alPhaDic ={}
    overlap = 0
    for i in word:
        a = word.count(i)
        if a >= maxCnt:
            maxCnt = a
            maxWord = i
            alPhaDic[i] = a
    for a in alPhaDic.values():
        if a == maxCnt:
            overlap += 1
    if overlap > 1:
        maxWord = '?'
    print(maxWord.upper())
  • がタイムアウトしたのは、ディックシャナリーが長い時間を費やしたからかもしれません.
  • 2 2 2回目の試み
  • word = input().lower()
    wordList = list(set(word))
    cnt = []
    for i in wordList:
        a = word.count(i)
        cnt.append(a)
    if cnt.count(max(cnt)) > 1:
        print('?')
    else:
        print(wordList[cnt.index(max(cnt))].upper())
    ブログリンクを参照