• Предмет: Информатика
  • Автор: artv15052006
  • Вопрос задан 3 года назад

Интересная задача, если кто-то хочет пошевелить мозгами.

Код пишется на любом удобном для вас языке.

Английский язык.
Отец Пети заботится об образовании сына, и поэтому говорит с ним только на английском языке. Но есть такая дилема, что зачастую отец не понимает что говорит сын.

Но он может предположить, что хотел сказать Петя.
Если слово из словарного запаса является частью сказанного слова, или последовательность букв словарного слова встречается в сказанном слове, то это слово Петя и хотел произнести.

Ввод:
Первой строкой нам подаётся кольчество слов, которое знает Петя.
Дальше построчно даются слова, которые он знает.
И последней строкой даётся слово, которое мальчик сказал.

Вывод:
На вывод должна поступить построчно последовательность из "YES" или "NO".

Пример:
Ввод:
4
hi
hello
dry
welcome
anihellation
Вывод:
YES
YES
NO
NO

Удачи =)


Аноним: Это задача с заочного этапа МОШ )))
artv15052006: Да, но тот прошёл
Аноним: Я буду участвовать в заключительном )
artv15052006: Тоже
Аноним: С этой задачей сам не разобрался, но есть код решения от моего друга
Аноним: Он просил не распространять его код
artv15052006: Да я её решал уже
artv15052006: Даже где-то готовый код валяется
Аноним: Можешь объяснить?
Аноним: Я могу написать решение но оно по времени не оптемальное

Ответы

Ответ дал: Аноним
1

Вот решение, но не самое оптимальное по времени работы.

def get_ans(text1, text2):

   l = 0

   for simbol in text1:

       if len(text2) == l:

           return 'YES'

       if simbol == text2[l]:

           l += 1

   return 'NO'

n = int(input())

a = []

for _ in range(n):

   a.append(input())

text = input()

for x in range(n):

   print(get_ans(text, a[x]))

Приложения:

artv15052006: У меня вот так вышлоhttps://repl.it/@MrArtemChik/IHatePasswords#main.py
Аноним: ваш код медленее будет работать, через find() слишком долго будет
Вас заинтересует