... Якщо я дозволю своїм пальцям бездіяльно блукати по клавішах друкарської машинки, може статися, що у мене вийде надрукувати яке-небудь осмислене речення. Якщо армія мавп буде бити по клавішах друкарських машинок, вони можуть надрукувати всі книги Британського музею. Шанс, що вони це зроблять, безумовно більше, ніж вірогідність того, що всі молекули зберуться в одній половині посудини.
Артур Еддінгтон «Природа фізичного світу», 1927.
- Форд! — Вимовив він, — там, зовні, нескінченно багато мавп.
І вони бажають обговорити з нами «Гамлета»,...
Припустимо, що наші мавпи друкують, і друкують, і друкують, і вже надрукували безліч різноманітних коротких уривків тексту.
Давайте перевіримо їх на входження осмислених слів.
Вам пропонується деякий текст, який може містити осмислені слова.
Ви повинні підрахувати кількість таких слів у цьому тексті.
Слово може стояти окремо, а може бути присутнім як частина іншого слова.
Регістр букв не має значення. Слова надані в нижньому регістрі і не повторюються.
Якщо слово зустрічається в тексті кілька разів, воно має бути пораховано тільки один раз.
Наприклад, текст "How aresjfhdskfhskd you?", слова - ("how", "are", "you", "hello").
Результат повинен дорівнювати 3.
Вход: Два аргумента.
Текст як рядок (юнiкод у Python 2) і слова у вигляді безлічі (set) рядків (юнікод у Python 2).
Вихід: Кількість слів у тексі у вигляді цілого числа.
Приклад:
countWords("How aresjfhdskfhskd you?", ["how", "are", "you", "hello"]) == 3
countWords("Bananas, give me bananas!!!", ["banana", "bananas"]) == 2
countWords("Lorem ipsum dolor sit amet, consectetuer adipiscing elit.",
["sum", "hamlet", "infinity", "anything"]) == 1
Як це використовується:
Python зручна й потужна мова для обробки текстових даних.
У цьому завданні наводиться всього лише простий приклад інструментів для пошуку в тексті, які ви можете розробляти.
Передумови:
0 < len(text) ≤ 256
all(3 ≤ len(w) and w.islower() and w.isalpha for w in words)