Я начинающий программист на Python (самообучение онлайн), я начал решать проблемы с кодированием на hackerrank, но мне трудно понять, почему мой код выдает ошибку тайм-аута.Мне не хватает руководства. Пожалуйста, подскажите, что мне следует узнать, чтобы понять, как быстрее выполнять коды.
Пример задачи, которую я кодировал -
У нас есть список слов вжурнал и список слов, необходимых для записи.мы должны проверить, есть ли в журнале все слова, которые нам нужны, чтобы сделать заметку.выведите «Да», если доступны все слова, если «нет», выведите «Нет».
mag = 'ive got a lovely bunch of coconuts'.split()
note = 'ive got some coconuts'.split()
Я определил две функции -
функция ниже дает тайм-аутдля большого списка слов, и я не понимаю, почему.эта функция просто проверяет, есть ли каждое требуемое слово в журнале, и я выскакиваю уже использованное слово.
функция 1
def checkMagazine(magazine, note):
ans = 'Yes'
for i in note:
if i not in magazine:
ans = 'No'
break
else:
magazine.pop(magazine.index(i))
print(ans)
Функция 2 (работаеточень быстро и пройти весь тест (я следовал чьему-то коду))
эта функция создает словарь, просматривает каждое слово в журнале и сохраняет количество слов в словаре.и снова циклически перебирать слова в словаре, сравнивать с необходимыми словами и затем выводить, и все же это быстрее, чем непосредственно проверять слова в двух списках.
def checkMagazine2(magazine, note):
ans = 'Yes'
d = defaultdict(int)
for word in magazine:
d[word]+=1
for word in note:
if d[word] == 0:
ans = 'No'
break
else:
d[word]-=1
print(ans)
в большинстве кодов, которые я пытаюсь решить, я сталкиваюсь с ошибками тайм-аутав огромном списке.Я стараюсь продолжать кодировать, и после стольких неудач я становлюсь демотивированным и трачу свое время на онлайн игры.Мне действительно нужно найти работу в ближайшее время, пожалуйста, кто-нибудь направит меня.