Вы зря смеётесь. Вы себя перехитрили, подключив к решению элементарной задачи мощнейщую машину регулярных выражений. Её внутренняя сложность огромна, и передав в качестве регулярного выражения один из входных аргументов, вы активировали возможность пользователя контролировать всю эту машину - подкинуть невалидное или вычислительно дорогое выражение, заинжектить код на перле да и ещё кучу всяких гадостей. Т.е. программа не делает того, что должна.
Проблема, на самом деле, концептуальная. Я не лично про вас говорю, а вообще, по опыту собеседований (100+). Это своего рода карго-культ у программистов - натаскать "сниппетов" отовсюду, слепить соплями - и программа готова. Если не работает, поискать на stackoverflow, перепробовать все "советы". Если ничего не получается, поискать другую библиотеку. Регулярные выражения могут делать поиск? Могут. Значит надо их и использовать в реализации strstr. Без понимания. Возвращаясь к примеру с регуляркой, я бы назначил собеседование, и первым вопросом попросил рассказать, как эта программа работает. Всегда ли она решает поставленную задачу. Если не всегда, то как это можно исправить. И если кандидат логически сообразит, в чём проблема, и сможет написать нормальное, простое, с циклами, то это очень, очень хороший знак. 90% не смогут. Я много собеседований проводил на программистов, которые будут разрабатывать системы технического зрения. Обычно прошу написать код - есть изображение, надо скопировать прямоугольный фрагмент из одного места в другое (на том же изображении). Из операций доступны только GetPixel и SetPixel. Как вы думаете, какая доля способна написать просто два вложенных цикла по X и Y? Я всё понимаю, собеседование, стресс, но блин, люди, если вы такое не можете написать без сознания, то о чём вообще речь идёт? А резюме кандидатов - одно другого краше: кандидаты наук с работами в области распознавания образов, программисты с опытом 5 лет в компьютерной графике. А всё одно - 90% кандидатов нельзя даже к компьютеру подпускать. On Thu, Dec 10, 2015 at 7:15 AM Anatoly Y <[email protected]> wrote: > А если на перле вам напишут такое > perl -E 'sub strstr{$_[0]=~/$_[1]/;length $`} say strstr("hello > world","world")'' > Вы будете считать, что тест пройден? К вопросу о Кнуте. > > 2015-12-09 22:54 GMT+06:00 Ivan Petrov <[email protected]>: > >> > 9 декабря 2015 г., 15:35 пользователь Ivan Petrov < >> [email protected]> >> > написал: >> >> > блин ну при чем тут Кнут и strstr? >> >> > наверное, потому что это фундаментальная вычислительная проблема? >> Оттого в >> > названии одной из самых эффективных реализаций (КМП) есть буква >> принадлежащая >> > Кнуту. >> >> в тестах тестируем не умение составить самый лучший алгоритм, решающий >> какие-то там фундаментальные вычислительные проблемы, >> а умение составить алгоритм ВООБЩЕ. >> >> вот первый попавшийся с прямо Вашей ссылки - ДОСТАТОЧЕН для того чтобы >> пройти тест. >> >> проблема в том что 9 из 10 респондентов его не пишут, увы. Вот эти >> самые 5 строк. >> >> >> попытка свести обсуждение к Кнуту - есть попытка перевести разговор на >> другую тему. >> мы говорим о том что работодатель хочет малыми затратами понять кто >> перед ним стоит и что этот человек из себя представляет. >> >> тесты в данном случае - очень хороший способ. >> >> и я это на своем опыте говорю: приходит 10 человек и из них 9 не >> может написать strstr простейшим способом. >> Если всех 10 собеседовать, то это работу просто бросить надо и только >> собеседованиями заниматься. А так всякие "эксперты" отсеиваются на >> стадии просмотра результатов теста за 10 минут. >> >> >> -- >> Moscow.pm mailing list >> [email protected] | http://moscow.pm.org >> > > -- > Moscow.pm mailing list > [email protected] | http://moscow.pm.org >
-- Moscow.pm mailing list [email protected] | http://moscow.pm.org
