![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
kuton93 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 25.5.2015 Репутация: нет Всего: нет |
Всем привет!
Прошу вашей помощи, Великие Гуру C++. Пишу приложение, в котором есть небольшой словарик, набор строчек. Строчки разной длины и содержат в себе только числовые значения, записанные через ";" . Приложению на вход поступает строчка, идентичная по характеристикам, только гораздо большей длины. Вопрос: необходимо проанализировать входную строчку на предмет наличия в ней маленьких строчек из словаря, при чем, совпадением считается, если числа из строчки словаря совпадают с участком входной строки не меньше чем на 80%. Пример: на входе: [....100;1000;10000;100000;900;75;871;347;...] в словаре: 1) [77;15;224;34;781;574;1561;] 2) [800;8000;80000;850;] 3) [13;16;61;516;4;864;61;98;46;8189;63;] Результат: сообщение "совпадение обнаружено!" P.S. Спасибо всем откликнувшимся, буду рад абсолютно любой помощи, от программного кода, до ссылок и названий доп. литературы! |
|||
|
||||
baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 32 Всего: 101 |
я бы начал с простого: преобразовать входную строку и элементы словаря в целочисленные массивы. идейно сравнивать и сдвигать так же, как в алгоритме Бойера—Мура—Хорспула. Таблица сдвига должна учитывать требуемую точность.
насколько велик словарь, какова длина входной строки, как часто производится поиск? вариант "в лоб" чем не подходит? |
|||
|
||||
kuton93 |
|
||||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 25.5.2015 Репутация: нет Всего: нет |
В словаре до 20 слов(строчек). Каждая строчка до шести килобайт. Входная строка до двух мегабайт. Под
Это сообщение отредактировал(а) kuton93 - 25.5.2015, 22:48 |
||||
|
|||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 8 Всего: 146 |
простым обходом массивов , что нельзя? и почему С++ , для таких задач более подходят скриптоввые языки....
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
kuton93 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 25.5.2015 Репутация: нет Всего: нет |
Потому что в других языках я совсем "ноль". В C++ хотя бы чуть-чуть понимаю. А в обход массивов, как это сделать? |
|||
|
||||
baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 32 Всего: 101 |
http://ideone.com/dIa62p |
|||
|
||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 22 Всего: 135 |
А чем std:
![]() Добавлено через 57 секунд гы.. а прикольно функция search с namespace'ом в начале выглядит -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |