17.03.2006 | Игры
Регулярные выраженияЯзык компьютерных программ немножко отличается от обычного языка. Но чем-то и похож, конечно...
1
Лингвистическая задача Марии Рубинштейн
В компьютер заложен словарь русского языка. Каждое слово занимает отдельную
строку:
а
аба
абажур
абак
...
...
Имеется программа для поиска слов в словаре. Пользователь задает определенный шаблон, и программа выдает ему слова, соответствующие этому шаблону. Простейший шаблон - это буква: пользователь вводит букву, и программа находит в словаре все слова, содержащие эту букву (так, по букве щ будут найдены слова прыщ, трещотка, щи и мн.др.). Шаблоном может быть любое сочетание букв (тогда программа находит все слова, в которых есть это сочетание букв). Для более сложного поиска кроме букв используются некоторые вспомогательные символы. Вот некоторые примеры шаблонов:
- любая из букв а, б, в, г, д и никакая другая (в квадратных скобках могут стоять любые буквы в любом количестве)
- любая из букв от а до в
к{n} - данная буква (здесь -- к) встречается ровно n раз ("n" -- любое число)
к{n,} - данная буква встречается n раз или более
к* - данная буква либо встречается, либо нет
^дом - отсутствие других букв в начале слова, т.е. слово начинается на первую в шаблоне букву
дом$ - отсутствие других букв в конце слова, т.е. слово кончается на последнюю в шаблоне букву
Шаблоны можно соединять. Так, по шаблону ^пят*а будет найдено: пята, пятка, пятачок и т.д., и не будут найдены, напр.,: запятая, пятерка, спятить.
Задание.
Напишите шаблоны для поиска:
А) всех слов, в которых подряд идут три и более гласные буквы (напр. радИОАстрономия, нЕУЯзвимость, нЕУЮтно).
Б) всех односложных слов, кончающихся на букву "г" (напр. юг, взвизг).
В) всех пятибуквенных слов.
Указание. Для простоты предположим, что в словаре нет слов с дефисами и прочими не-буквенными символами.
Здесь опубликован ответ на задачу "Регулярные выражения" и шараду
2
Шарада Марии Рубинштейн
К молчанью призывает первый слог,
Второй - египетский могучий бог,
Согласье выражают слогом третьим,
Загадка получается в ответе.
Не "кивай", а "киваи": это язык, на котором говорят около десяти тысяч человек в Папуа - Новой Гвинее. И мы немножко поговорим.
Китайский историк и государственный деятель I в. н.э. Бань Гу в своём труде «Хань шу» («Книга о династии Хань») приводит список известных людей прошлого, разделив их по своему усмотрению на девять категорий в зависимости от их личных качеств...