понедельник, 4 июля 2011 г.

Re: Приведение двух разных строк к одному виду

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

Опять-таки, зависит от того, боевая ли это задача или просто надуманная «а ну-ка, сделай-ка вот так».

Ну и чтобы предложить хоть какой-то вариант. Тут много было разговоров о высших образованиях, люди с образованием знают кучу умных слов с лекций, но я их (увы) не помню, поэтому просто предложу первое, что пришло в голову: сделать что-то вроде шаблонов. У вас ведь есть строка, она разбита пробелами. Порядок нам, в принципе, известен. 

А дальше вы разбиваете строку на 5 частей, каждый кусок анализируете своим анализатором. В анализаторе с 6*40 у вас есть несколько шаблонов: числоХРЕНЬчисло, как минимум. 

Ну и таким образом вы таки по частям анализируете каждую часть, а потом пишите в базу (или что там нужно делать).

Но опять-таки, если это задача ради задачи — здесь и проверяется знание крутых умных вещей, которых я не знаю, допустим.

--
Andrey Ognevsky

On Tuesday, July 5, 2011 at 12:10 AM, Timothy N. Tsvetkov wrote:

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

2011/7/5 a.ognevsky <a.ognevsky@gmail.com>:
Я, конечно, не образцовый сотрудник, но таки так и решил бы тестовое
задание: сделать форму, чтобы пользователь не вводил всякую фигню. Ну а если
бы это не подошло -- вежливо попрощался бы, ибо писать килотонные (и
бесполезные) парсеры -- это как-то глупо в данной ситуации (имхо).
(но я не горжусь этим своим качеством)
--
Andrey Ognevsky

On Monday, July 4, 2011 at 8:51 PM, weiss --- wrote:

За ссылку спасибо, гем к сожалению бесполезен - нужно сделать на
отвратительном 1С...

4 июля 2011 г. 20:47 пользователь Саша А <elequtree@gmail.com> написал:

Вот гем: https://github.com/flori/amatch/tree/master

5 июля 2011 г. 0:45 пользователь Саша А <elequtree@gmail.com> написал:

Попробуйте посмотреть в сторону
http://en.wikipedia.org/wiki/Jaro%E2%80%93Winkler_distance
Может мысли какие-нибудь появятся по смежным ссылкам.

4 июля 2011 г. 22:49 пользователь weiss --- <ecuezzo@gmail.com> написал:

Всем доброго времени суток! Всплыла задачка которую срочно надо решить
(не на ruby, но дело в принципе). Натолкните пожалуйста на
удовлетворительный алгоритм :-)
В одном филиале люди заносят название товара и его количество, к
примеру

No. Наименование �Количество
1 ДБМ "грибок" 6х40 ЦИЛИНДР 100 7

Похожая ситуация в другом отделении, но так как человеку свойственно
ошибаться, наименование может быть записано немного по другому,
например вот так:

No. Наименование Количество
3 ДБМ "грибок" 6*40 ЦИЛИНДР 100 2

БД не одна и та же, поэтому нужно все это дело сравнить и посчитать
общую сумму товара.
Какой может быть алгоритм, который даст минимум фейлов? Вырезать из
строчки все пробелы, знаки препинания, оставлять только буквы и цифры,
и потом сравнивать? Но если кто-то пишет 6х40 а кто-то 6*40, то это
не сработает. И ИИ еще не изобрели. Или я не туда смотрю, и все-таки
можно сделать так, чтобы конечный результат был на 100% валидным?

--
--
Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы
"RubyOnRails to russian" на группах Google.
FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ

Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
ror2ru@googlegroups.com
Чтобы отменить подписку на эту группу, отправьте сообщение по адресу:
ror2ru-unsubscribe@googlegroups.com
Дополнительные варианты находятся на странице группы
http://groups.google.com/group/ror2ru?hl=ru

--
--
Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы
"RubyOnRails to russian" на группах Google.
FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ

Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
ror2ru@googlegroups.com
Чтобы отменить подписку на эту группу, отправьте сообщение по адресу:
ror2ru-unsubscribe@googlegroups.com
Дополнительные варианты находятся на странице группы
http://groups.google.com/group/ror2ru?hl=ru

--
--
Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы
"RubyOnRails to russian" на группах Google.
FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ

Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
ror2ru@googlegroups.com
Чтобы отменить подписку на эту группу, отправьте сообщение по адресу:
ror2ru-unsubscribe@googlegroups.com
Дополнительные варианты находятся на странице группы
http://groups.google.com/group/ror2ru?hl=ru

--
--
Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы
"RubyOnRails to russian" на группах Google.
FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ

Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
ror2ru@googlegroups.com
Чтобы отменить подписку на эту группу, отправьте сообщение по адресу:
ror2ru-unsubscribe@googlegroups.com
Дополнительные варианты находятся на странице группы
http://groups.google.com/group/ror2ru?hl=ru

--
--
Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы "RubyOnRails to russian" на группах Google.
FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ

Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
ror2ru@googlegroups.com
Чтобы отменить подписку на эту группу, отправьте сообщение по адресу: ror2ru-unsubscribe@googlegroups.com
Дополнительные варианты находятся на странице группы http://groups.google.com/group/ror2ru?hl=ru

--
--
Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы "RubyOnRails to russian" на группах Google.
FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ
 
Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
ror2ru@googlegroups.com
Чтобы отменить подписку на эту группу, отправьте сообщение по адресу: ror2ru-unsubscribe@googlegroups.com
Дополнительные варианты находятся на странице группы http://groups.google.com/group/ror2ru?hl=ru

Комментариев нет:

Отправить комментарий