|
Вопрос # 2 276/ вопрос открыт / |
|
Здравствуйте, уважаемые эксперты!
Помогите пожалуйста с написанием программы работающим данным образом
1. Производится ввод строки с клавиатуры некого набора букв без пробелов
2. Затем в этой строке выделяются подряд идущие буквы если выделенная часть образует слово русского языка и причем выделены все слова то выводится пустой экран
если же выделены несуществующие или выделены не все слова то выводятся недостающие
Заранее спасибо
P.S. задача представляет из себя учебное пособие
 |
Вопрос задал: romik007 (статус: Посетитель)
Вопрос отправлен: 8 января 2009, 02:36
Состояние вопроса: открыт, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 3; последнее сообщение — 8 января 2009, 19:20; участников в обсуждении: 2.
|
Вадим К (статус: Академик), 8 января 2009, 03:02 [#1]:
Если программа не будет пользоваться словарём, то задача будет по силам только искусственному интеллекту. В условии задачи об этом ничего не сказано...
Галочка "подтверждения прочтения" - вселенское зло.
|
|
romik007 (статус: Посетитель), 8 января 2009, 17:49 [#2]:
разрешено использованеи какого либо текстового фаила с набором возможных слов будь то электронный словарь формата txt или еще чтото
|
|
Вадим К (статус: Академик), 8 января 2009, 19:20 [#3]:
ну тогда в чем проблема? Наверно только в том, что полного словаря русского языка не существует и врядли появиться.
А алгоритм будет просто. берём нашу строку с первого символа и по очереди перебираем слова с словаря и сравниваем с началом строки. Если нашли - отрезаем и перемещаемся дальше, если нет, то перемещаемся на один символ. и повторям вышеописанное до конца строки.
Сразу предложение по ускорению перебора. слова можно разбить на 33 (или всё таки 30? на ы, ь, ъ нормальных слов нет вроде. Хотя по поводу ы я сомневаюсь) словарика по каждой букве - перебор будет идти быстрее. Также слова в словаре не даром отсортированы. и перебор можно остановить ещё на середине, убедившись, что слово не будет найдено. сумарно это даст прирост скорости где то в 50 раз. Также в этих словарях можно поубирать первую букву - это уменшит файл и даст прирост скорости.
В случае неудолетворительной работы, можно разбить на словарики по первым двум символам. так как не все комбинации существуют - то словарей будет меньше 1000, зато прирост скорости будет большой. Плюс ко всему, что бы не напороться на потерю скорости в поиске файла, можно сделать папки на каждый символ и туда поместить словарики.
В общем, дерзайте
Галочка "подтверждения прочтения" - вселенское зло.
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|