@fakename

Как найти ошибку в коде Python?

Решил задачу, но код не проходит проверку(stepic.org). Что можно улучшить?
задача:
Программа должна считывать одну строку со стандартного ввода и выводить для каждого уникального слова в этой строке число его повторений (без учёта регистра) в формате "слово количество" (см. пример вывода).
Порядок вывода слов может быть произвольным.

Sample Input 1:
a aa abC aa ac abc bcd a
Sample Output 1:
a 2
aa 2
ac 1
abc 2
bcd 1
Sample Input 2:
a A a
Sample Output 2:
a 3
Memory Limit: 256 MB
Time Limit: 5 seconds
мое решение:
def f():
    key = [i.lower() for i in input().split()]
    d={}
    for i in key:
       if i in d:
           d[i]+=1
       elif i not in d:
           d[i]=1
    for i in d:
       print(i, d[i])
  • Вопрос задан
  • 3041 просмотр
Решения вопроса 1
Va1ery
@Va1ery
"Порядок вывода слов может быть произвольным."
Ваша программа работает верно, да и чтобы не уложиться в 256 мегабайт, должна быть очень большая входная строка.
Может все таки они не все возможные варианты вывода рассмотрели для некоторого теста, такое бывает. Попробуйте, ради интереса, вывести упорядочив по ключу, или по длине ключа, а внутри длины по алфавиту, в примерах так.

Еще возможно сервер проверки требует функцию main как точку входа, попробуйте добавить
if __name__ == '__main__':
main()
а то что вы написали, оформить в отдельную функцию
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Lerg
@Lerg
Defold, Corona, Lua, GameDev
Скорее всего по памяти не укладываетесь, не используйте разбиение на слова в list, идите по строке, вычленяйте слова, инкрементируйте словарь со словами.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы