|
|
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
продолжая тему несложных(или сложных) задачек по программированию... Очередная задачка(встреченная на просторах инета) есть строка: Код: plaintext 1. необходимо написать код который будет, случайным образом, строить из него новое предложение, используя варианты из скобок {}. например: Пожалуйста сделайте так, чтобы это удивительное тестовое предложение менялось каждый раз Просто сделайте так, чтобы это простое тестовое предложение изменялось быстро случайным образом и так далее... вариантов решения много. но есть очень компактное и "красивое" PS. форумных гуру - прошу дать подумать новичкам)) сразу не пишите "дзен-код" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2010, 09:35:20 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r u, сходу так и не скажешь... Через preg_replace_callback получается, но это некрасиво и долго. Через токены пока не додумался как сделать... Интересно.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2010, 14:46:38 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Делал бы анализ строки, 2-3 небольших класса крассиво и аккуратно, можно через PCRE с помощью рекурсивных RE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2010, 15:02:46 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Anjey aka PM, через рекурсивные там получится на каждый вложенный список выбора прогонять еще раз этот же рекурсивный паттерн, так как матчит он весь кусок выше рекурсивного субпаттерна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2010, 15:07:30 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2010, 15:13:23 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Master5, бай вот? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2010, 15:14:03 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
an0nymMaster5, бай вот? Что-что??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2010, 15:15:36 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
an0nymr u, сходу так и не скажешь... Через preg_replace_callback получается, но это некрасиво и долго. Через токены пока не додумался как сделать... Интересно.) ну если честно, Компактность и Красивость решения - понятие растяжимое))) я не говорил что это будет одна строка )) хотя может и будет)) гениев хватает через регулярки - вполне красивое получается) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2010, 16:11:59 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r u, первое впечатление от Вашей задачки и всевозможных символов ")))" - Вы пришли либо пошутить, либо поиздеваться, но скорее всего "чужими руками жар загребать". Уважаемый, Вы бы для начала хоть бы что-нибудь от себя предложили! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2010, 17:11:26 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
какой жар?? самозабанься. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2010, 17:23:18 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r u, Вы задачу с решением с Хабра взяли или сами решили? Судя по формулировке таки скопировали... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2010, 17:24:45 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
ScareCrowкакой жар?? самозабанься. А где же Ваше решение, уважаемый? Или на "пустой крючек" клевать, что-то все-таки останавливает? Я то знаю ответ, но Вам не скажу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2010, 17:34:41 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
а что общего между наличием решения и моим 1) вопросом 2) предложением Ответьте пожалуйста на вопрос про жар чужими руками. и про предложение самозабаниться, ненадо переводить разговор на меня. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2010, 17:56:44 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
ScareCrowа что общего между наличием решения и моим 1) вопросом 2) предложением Ответьте пожалуйста на вопрос про жар чужими руками. и про предложение самозабаниться, ненадо переводить разговор на меня. Ни Ваш вопрос, ни Ваше предложение не имеет ни какого-либо отношения к решению задачи. Вы не уводите разговор в сторону. Предложите что-то по сути задачи. В пративном случае с таким же успехом можно сказанное Вами Вам и переадресовать. ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2010, 18:11:41 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
tarasf31r u, Вы задачу с решением с Хабра взяли или сами решили? Судя по формулировке таки скопировали... :) как я и написал выше, задача не моя. да наверное на хабре она мелькала. строка точно как там была, потому что я её сохранял к себе когда пытался решить. а условие уже я тут своими словами описал. задачка показалась мне забавной. при рутинной работе не часто такие появляются на горизонте. так что размяться может комуто будет интересно. да я её решил через регулярки. оптимальнее и компактнее пока не смог придумать) ps если вы мне не верите) то либо задавайте свои задачки(а я попробую решить) либо чуть позже опубликую свое решение) и можно будет обсудить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2010, 18:17:31 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
AIS r u, первое впечатление от Вашей задачки и всевозможных символов ")))" - Вы пришли либо пошутить, либо поиздеваться, но скорее всего "чужими руками жар загребать". Уважаемый, Вы бы для начала хоть бы что-нибудь от себя предложили! а мне что нужно было публиковать её с грустными и траурными смайлами? )) это не шутка и не издевательство. задача не очень сложная. или вы считаете что у нее нет решения? если я сразу напишу ответ - то какой смысл? либо никто не будет решать, либо часть будет решать в этом же направлении.. а так интрига. может ктото родит чтото намного лучше чем у меня получилось. но если народ затребует еще - то в любой момент выложу как я решал. с этим нет проблем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2010, 18:25:00 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r utarasf31r u, Вы задачу с решением с Хабра взяли или сами решили? Судя по формулировке таки скопировали... :) как я и написал выше, задача не моя. да наверное на хабре она мелькала. строка точно как там была, потому что я её сохранял к себе когда пытался решить. а условие уже я тут своими словами описал. задачка показалась мне забавной. при рутинной работе не часто такие появляются на горизонте. так что размяться может комуто будет интересно. да я её решил через регулярки. оптимальнее и компактнее пока не смог придумать) ps если вы мне не верите) то либо задавайте свои задачки(а я попробую решить) либо чуть позже опубликую свое решение) и можно будет обсудить. Я Вас ни в чем не обвиняю. Когда эта задачка появилась на Хабре - я ее решыл через регулярки. Там , к стати, есть пару интересных решения на разных языках програмирования :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2010, 18:29:00 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
AISВ пративном ScareCrow-а не трошь! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2010, 18:38:19 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r uan0nymr u, сходу так и не скажешь... Через preg_replace_callback получается, но это некрасиво и долго. Через токены пока не додумался как сделать... Интересно.) ну если честно, Компактность и Красивость решения - понятие растяжимое))) я не говорил что это будет одна строка )) хотя может и будет)) гениев хватает через регулярки - вполне красивое получается) Не, регулярки не катят. Во-первых, получается около 15 строк кода, что уже не круто. Во-вторых, очень неоптимально. Если, конечно, я правильно сделал на регулярках сам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2010, 20:23:12 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Уважаемые ткоа не смейтесь над моим решением и сильно не критикуйте - регулярки и индеексы в базах всегда были мои вечные проблемы: Код: plaintext 1. 2. 3. 4. 2seti ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2010, 20:36:52 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Ренат, код бы хотя бы запустил... синтаксис даже неправилен, не говоря о алгоритме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2010, 21:04:56 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
та же логика, тока строку представил в виде функции: Код: plaintext 1. 2. 3. 4. 5. 6. 2seti ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2010, 21:36:04 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Master5AISВ пративном ScareCrow-а не трошь! А я вообще никогда никого не трогаю, пока меня не трогают. Лучше бы по теме красноречие проявляли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2010, 21:37:56 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
AIS r u, Вы пришли либо пошутить, либо поиздеваться, но скорее всего "чужими руками жар загребать". Вы впервые на этом форуме? Так зачем обижать человека не имея о нем ни малейшего представления? ЗЫ: в следующий раз выпишу форменное предупреждение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2010, 22:19:40 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
РенатУважаемые ткоа не смейтесь над моим решением и сильно не критикуйте - регулярки и индеексы в базах всегда были мои вечные проблемы: Код: plaintext 1. 2. 3. 4. 2seti направление правильное ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2010, 05:16:52 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r u, на всякий случай, вот что у меня получилось: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2010, 06:54:21 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
С помощью регулярок не интересно. Вот мое решение: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2010, 11:07:13 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Это решение не оптимально, его еще можно доработать. В частности, у меня сначала ищется первое вхождение "}", а потом последне вхождение "{". А надо наоборот, тогда лишних шагов шикла не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2010, 11:10:26 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Репослав, Самым оптимальным решением в даном случае будет посимвольный анализ строки, что и делает strpos Только в вашем случае много раз подряд В процессе анализа собирается структура для обработки и потом в один проход формируется результат. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2010, 11:40:38 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Anjey aka PMРепослав, Самым оптимальным решением в даном случае будет посимвольный анализ строки, что и делает strpos Только в вашем случае много раз подряд В процессе анализа собирается структура для обработки и потом в один проход формируется результат. я кстати тоже начал писать подобный вариант: - посимвольный анализ строки с запоминанием координат блоков. - потом на основе этих координат вырезаем блоки и склеиваем в готовую строку - отдельный геморой с отслеживанием незакрытых или неоткрытых блоков но до конца я это не доделал, так как объем кода получался совсем не маленький и я бросил) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2010, 11:51:09 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r u, Если дома не впадло будет включить домашний комп покажу решение аналогичной задачи на сишке, а так писать впадло =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2010, 11:58:16 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
РепославС помощью регулярок не интересно. Вот мое решение: мало того что оно у вас неоптимально, так еще оно перестает работать если в строке, вне блоков, появляются символы { и } да, в условии задачи это не оговорено, но не оговорено и обратное. так что алгоритм должен быть универсальным и устойчивым к таким ситуациям) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2010, 11:59:52 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r u, Да, действительно, с левыми { и } варианта я не учел.=) Хотя с другой стороны, получается, что в исходной строке определенный формат. А в нормальных форматах специальные символы должны экранироваться. Не подумайте, это я не отмазываюсь=) *ушел дорабатывать скрипт* ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2010, 12:10:36 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Нет, в случае с "не специальными" не экранированными { и } возникают неоднозначности: какой из символов является "не специальным"? Код: plaintext или Код: plaintext В данном случае, конечно, очевидно. Но ведь строка в рабочей программе может быть совсем другой. ИМХО, "не специальные" { и } нужно экранировать. А если в строке не равное количество неэкранированных знаков { и }, то программа должна выдавать ошибку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2010, 12:50:55 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Репослав, по идее да, надо экранировать спец. символы. но с другой стороны, пусть результат будет не тем что мы ожидаем, но алгоритм должен игнорировать наиболее явные несовпадения типа: 1. если } скобка до {, то игнор 2. если { не закрыта, то тоже игнор 3. блоком считать от { и до ближайшей справа }, при этом если встречена { то блок сдвигается 4. для вложенных блоков повторять пункт 3. рекурсивно и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2010, 13:04:38 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
вот еще что у меня получилось, без регулярок: Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2010, 06:34:23 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
самопроверка. что напечатает скрипт? и почему Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2010, 08:08:40 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r u, у вас получился очень компактный вариант=) У меня, правда, глаза на лоб полезли от сложночти восприятия( автор Код: plaintext В восьмиричной системе счисления нет знака "8". Что выведет - сейчас проверю) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2010, 11:42:50 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Репославr u, у вас получился очень компактный вариант=) У меня, правда, глаза на лоб полезли от сложночти восприятия( автор Код: plaintext правда у него тоже проблемы с непарными символами }. насчет сложности тоже согласен. если разбить на атомарные операции то строки на 3 будет больше. но суть не изменится ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2010, 13:28:41 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
что выведет скрипт? и почему, как вы думаете. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2010, 11:50:59 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r u, ну очевидно, что 666, потому что всё по референсу по цепочке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2010, 14:27:45 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Не секрет, что уважающий себя веб программист должен знать SQL, поэтому следующая задачка именно по нему: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2010, 11:49:55 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. SET @i=0; SELECT* FROM (SELECT `id`, `address`, @i:=@i+1 as `i` FROM `Email`) WHERE NOT `i`%10; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2010, 16:55:30 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Блин, здесь сообщения редактировать нельзя. SET @i=0; SELECT* FROM (SELECT `id`, `address`, @i:=@i+1 as `i` FROM `Email`) AS res WHERE NOT `i`%10; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2010, 16:57:58 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Репослав, это не чистый SQL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2010, 16:59:42 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Anjey aka PM, если можно, укажите, что здесь не подходит под стандарт? Я плохо знаю SQL, но достаточно хорошо знаю MySQL. Я думал, что "чистый SQL" - имеется в виду без постобработки результатов в скрипте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2010, 17:04:31 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Репослав, Просто на другом сервере ваш запрос работать не будет, только на мускуле ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2010, 17:44:19 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Anjey aka PM, видимо я плохо знаю SQL, но без переменных, ИМХО, никак. Другой вопрос, что "правильнее", наверное, Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2010, 18:20:53 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
an0nym, на FB можно генераторами, на постгре сиквенсами помойму тоже можно, это все-таки ближе к стандарту нежели переменные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2010, 18:37:21 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
пока нет близкого решения ) p.s. задачу можно решить, например, с помощью % и count() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2010, 05:03:17 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2010, 10:56:31 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
ScareCrow Код: plaintext 1. 2. 3. 4. 5. 6. Если имелось в виду подобное решение, то ну его нафиг этот стандартный SQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2010, 11:47:14 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
ScareCrow, поздравляю) это одно из правильных решений есть еще такое: SELECT * FROM T E1 WHERE (SELECT COUNT(*) FROM T E2 WHERE E1.ID>=E2.ID)%10=0 ORDER BY E1.ID ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2010, 11:47:28 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
ScareCrow, кстати, там вместо where rank % 10 = 0 надо having (count (test_2.id_test)%10)=0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2010, 11:50:12 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Задачка: -Вывести список файлов в директорий (нельзя пользоваться встроенными функциям для работы с директориями и файлами) ps ответ будет сюрпризом для тех кто не знает (я был в их числе )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2010, 13:09:25 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r u, glob или итератор? `ls`? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2010, 14:33:22 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
an0nymr u, glob или итератор? `ls`? glob И итераторы нельзя `ls` можно) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2010, 14:37:09 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r u`ls` можно) safe mode. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2010, 14:43:56 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
следующая разминка: необходимо проверить валидность, допустимость и сложность пароля. критерии проверки: - хотя бы один латинский символ в нижнем регистре - хотя бы один латинский символ в верхнем регистре - хотя бы одна цифра - хотя бы один спец.символ (например из готового списка) - минимальная длина 8 символов задача простая, и имеет множество решений. респект и уважуху заслужит автор самого компактного и эффективного решения) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2010, 12:50:35 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
опять регулярки :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2010, 12:53:51 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
ScareCrow, пока остановился на таком варианте ^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%&]).{8,}$ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2010, 08:00:23 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r uScareCrow, пока остановился на таком варианте + ^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%&]).{8,}$ Сам написал или откуда-то взял? Видел очень похожую в одной системе. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2010, 08:37:02 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
an0nymr uScareCrow, пока остановился на таком варианте ++ ^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%&]).{8,}$ Сам написал или откуда-то взял? Видел очень похожую в одной системе. :) встретил на просторах инета ) когда озаботился подобной проблемой. еще хочу добавить в неё чтобы не пропускала пароли в которых есть более 3-х повторяющихся символов) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2010, 10:38:15 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r u, всем известен классический алгоритм вычисления факториала. в любой книжке по программированию, приводится функция вычисления факториала с применением рекурсии: Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2010, 06:17:16 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
задача - проверить валидность IP адреса. а вы знаете самый быстрый и короткий способ, как сделать это в php? ps это конечно не регекспы ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2010, 05:32:44 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r u, long2ip и поймать exception или ошибку или false - лень проверять, а в мане не написано, что возвращает в случае неудачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2010, 08:49:21 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r u, можно еще через filter_var - тоже быстро. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2010, 08:50:27 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r u а как быстро и эффективно вычислить факториал без использования рекурсии? По формуле Стирлинга? =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2010, 11:57:28 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2010, 12:13:58 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Угадайте какая быстрее (только чур не проверять! =)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2010, 12:14:37 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Hett, я думаю первая. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2010, 12:22:53 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
an0nymr u, long2ip и поймать exception или ошибку или false - лень проверять, а в мане не написано, что возвращает в случае неудачи. да. быстрее чем через long2ip незнаю) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2010, 14:42:40 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Во всяком случае не эксепшен, я считаю) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2010, 14:54:00 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
f.futureHett, я думаю первая. Тесты показали что вторая конструкция работает чуть быстрее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2010, 14:55:17 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Hett Тесты показали что вторая конструкция работает чуть быстрее. Я, кстати, тоже подумал, что первая. Решил проверить перед постингом - был удивлен. Почему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2010, 15:17:46 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
наверно потому что for медленная конструкция. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2010, 15:35:19 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
an0nym, Скорее всего, потому что во втором случае алгоритм: 1. Умножение на счётчик 2. Увеличение счётчика ... А в первом: 1. Умножение на счётчик 2. Прыжок 3. Увеличение счётчика ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2010, 15:42:14 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
скорее всего потому что: авторEach of the expressions can be empty or contain multiple expressions separated by commas. и авторIn the beginning of each iteration, expr2 is evaluated на мое имхо оно не переводится в байт код а исполняется через внутренний аналог eval() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2010, 15:47:35 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
классическая задача Quine . Quine(Куайн) — компьютерная программа которая выдаёт на выходе точную копию своего исходного текста. при этом нельзя использовать никакие внешние данные. тоесть нельзя использовать функции чтения файла, например... при этом самый гламур - чтобы программа получилась как можно меньше. по ссылке выше, есть примеры на разных языках. и для php в том числе. говорят вариантов квайна очень много. если есть желание и идеи, можете попробовать написать свои варианты. у меня получился не самый лучший вариант. но потом я в сети нашел идею, которая в два раза укоротила код ) в общем - чуть позже опубликую что у меня получилось, если ктото не опередит ) с таким же решением. удачи. PS решения типа <?php readfile(__FILE__); это не квайн ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2010, 17:09:47 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r u, раз Квайн вам не очень интересен, то другая задачка: Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2010, 09:51:42 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r u, null ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2010, 10:14:19 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Кстати, ИМХО, поведение неправильно. Должно быть везде FALSE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2010, 10:14:55 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
an0nymr u, null нет null не равно TRUE одно из условия не выполнится ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2010, 10:27:45 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
an0nymКстати, ИМХО, поведение неправильно. Должно быть везде FALSE. моя имха - NULL... такая логика реализована в РСУБД и в этом есть смысл ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2010, 10:31:33 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r u, хм, действительно, неправильно переписал. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2010, 10:35:21 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Дегтярев Евгенийan0nymКстати, ИМХО, поведение неправильно. Должно быть везде FALSE. моя имха - NULL... такая логика реализована в РСУБД и в этом есть смыслващет согласно стандарту NULL = NULL -- ложь NULL IS NOT DISTINCT FROM NULL -- истина ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2010, 16:15:36 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Дегтярев Евгений моя имха - NULL... NULL это неправильный ответ. как уже написали. или вы о другом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2010, 16:25:23 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2010, 16:46:36 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
phpTeach, правильно. а объяснить механизм можете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2010, 16:58:19 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r uphpTeach, правильно. а объяснить механизм можете? Происходит неявное приведение типов при сравнении, что то вроде: var_dump((bool)$a==FALSE); var_dump((bool)$b==TRUE); var_dump((int)$a==(int)$b); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2010, 17:26:37 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
phpTeach, точно) причем это описано в доках If you compare an integer with a string, the string is converted to a number. за такие вот "особенности" поведения - очень часто и ругают php ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2010, 17:44:56 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r u, пока нет интересных задач, очередная неоднозначная "особенность" PHP ) в документации сказано что Имя переменной НЕ может начинаться с цифры. и действительно: $1 = 2; вызовет ошибку интерпретатора. однако PHP позволяет сделать так: $a = 1; $$a = 2; echo "{$1}"; // переменная с именем 1, и нет ошибок echo "${1}"; // а так уже заругается ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2010, 08:38:08 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r u, возвращаясь к квайну (программа которая выводит свой код) один из вариантов Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2010, 11:51:09 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
даешь еще задачки =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2010, 10:51:11 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Anjey aka PM, В последнее время ничего интересно не попадалось) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2010, 14:06:46 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r u, очередная разминка) навеяно вчерашним холиваром на тему ООП в php ) Дано: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2010, 11:04:53 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
как вариант по-проще Код: plaintext 1. 2. 3. 4. 5. 6. как вариант по-сложнее через Reflection API Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2010, 11:27:30 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r u, против лома нет приёма Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2010, 11:27:57 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Anjey aka PM, $rp->setValue($p, 'HACK'); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2010, 11:29:33 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Anjey aka PM, 1) classkit и другие сторонние модули расматривать не будем. так можно и свой написать тогда) 2) setAccessible появилось только в php 5.3, к томуже нужно изменить только значение, поле должно оставаться private. Хоббит маг Класс должен остаться темже. тоесть например var_dump($p); до и после - должен отличаться только значением поля $this->p. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2010, 11:43:09 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r u, жаль, у меня такого глубокого опыта работы с классами нет. =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2010, 11:46:32 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r uAnjey aka PM, 1) classkit и другие сторонние модули расматривать не будем. так можно и свой написать тогда) 2) setAccessible появилось только в php 5.3, к томуже нужно изменить только значение, поле должно оставаться private. Хоббит маг Класс должен остаться темже. тоесть например var_dump($p); до и после - должен отличаться только значением поля $this->p.это дополнительные условия, которые не были озвучены раньше посему не имеют силы =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2010, 11:47:27 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Anjey aka PM, согласен, моя вина, наверное. Просто тут речь про чистый PHP, сторонние модули и дополнения оставим в стороне. Класс очень примитивен специально, в реальности он может быть очень большим и сложным. И нужно подменить значение, но так чтобы ниже, имея этот объект нельзя было выявить что значение было изменено) Итак, уточняем задачу) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2010, 11:58:05 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r u, Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2010, 12:14:46 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
an0nym, согласен) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2010, 12:18:34 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r u, на самом деле я надеялся будет что-то более изящное, типа $p->showP = function() {echo "HACK";};, но не сработало. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2010, 12:19:50 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
an0nym, куда уж изящнее. уже php6 на подходе, а тут в реализации ООП такая дыра. и далеко не одна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2010, 12:26:34 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r u, будем надеяться (с оглядкой на последние посты), что о ней никто не знает. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2010, 12:28:30 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
an0nym, Знает, просто не люблю не элегантных решений =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2010, 13:13:35 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
авторуже php6 на подходе, а тут в реализации ООП такая дыра. и далеко не одна. процедурный язык с добавлеными ОО возможностями (гибридный) будет изобиловать подобным до тех пор, пока его не перепишут под использование исключительно в ООП (создадут чистый ОО ЯП) (пример VB 6 -> VB.NET), в силу своей природной сущности. Вопрос в другом, кому он, после этого понадобится?! ;) ЗЫ задачка была забавной! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2010, 14:03:51 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
vladgrig, скажите, что мне помешает сделать тот же финт с сериализуемым объектом в C#? Отвечаю: ничего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2010, 14:09:55 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
vladgrig, Да и с рефлекшн-апи тот же финт проходит как в джава так и в с#. Его конечно можно отключить или ограничить в правах, но далеко не все это делают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2010, 14:29:24 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Anjey aka PM, не боитесь, что товарищ vladrig опять не захочет с вами разговаривать? :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2010, 14:39:44 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
an0nymAnjey aka PM, не боитесь, что товарищ vladrig опять не захочет с вами разговаривать? :)) Сорри за коверканье ника. *vladgrig. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2010, 14:40:30 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
an0nym, А мне ни холодно ни жарко от этого. Я от vladgrig не видел ни одного логически законченного и обоснованного опровержения ни одного из моих аргументов в наших спорах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2010, 14:45:19 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
авторЯ от vladgrig не видел ни одного логически законченного и обоснованного опровержения ни одного из моих аргументов в наших спорах. хм... авторскажите, что мне помешает сделать тот же финт с сериализуемым объектом в C#? Отвечаю: ничего. авторДа и с рефлекшн-апи тот же финт проходит как в джава так и в с#. Его конечно можно отключить или ограничить в правах , но далеко не все это делают. внимание вопрос! каким образом в PHP можно сделать объект не сериализуемым, либо как ограничить\отключить рефлекшн-апи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2010, 14:55:11 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
vladgrig каким образом в PHP можно сделать объект не сериализуемым, либо как ограничить\отключить рефлекшн-апи? Реализовав методы wakeup и sleep? Но проблема то не в запрете, а в том что возможность такого финта к качеству ОО ЯП не имеет абсолютно никакого отношения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2010, 14:58:23 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r uan0nym, куда уж изящнее. уже php6 на подходе, а тут в реализации ООП такая дыра. и далеко не одна. это не дыра. спецификаторы доступа позволяют вам грамотно организовать инкапсуляцию и отловить потенциальных ошибки на уровне интерпретатора, а не пытаются от вас что-то "спрятать" или "утаить". так что если вам сильно хочется наговнокодить, чтобы вытащить или поменять какую-то приватную переменную, то никто вас останавливать не будет, это касается не только пхп. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2010, 15:02:56 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
продолжая дискуссию. ЗАЧЕМ "отключать рефлекшн, ограничивать в правах", делать несериализуемым и т.д.? от несанкционированного доступа нужно защищаться абсолютно другими средствами, но никак не приватными переменными :) если заводите такого рода дискуссию, то путаете назначение этого механизма. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2010, 15:09:39 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
coffeesnake, дело в том, что некоторые персонажи считают такие обслуживающие механизмы чуть ли не фундаментальными признаками поддержки ОО в ЯП и на этом основании говорят, что PHP неполноценный ОО язык, в отличие от Java, C# etc. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2010, 15:11:07 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
авторРеализовав методы wakeup и sleep? спс. посмотрю! остальное было неинтересно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2010, 15:14:12 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
vladgrigостальное было неинтересно. Мы скорбим по поводу того, что из многих упомянутых важных вещей, вам интересна только самая очевидная. :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2010, 15:16:08 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
<OFF> авторМы скорбим по поводу того, что из многих упомянутых важных вещей, вам интересна только самая очевидная. :( это ваша проблема! </OFF> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2010, 15:18:12 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
vladgrig<OFF> авторМы скорбим по поводу того, что из многих упомянутых важных вещей, вам интересна только самая очевидная. :( это ваша проблема! </OFF> Дык прискорбно вдвойне! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2010, 15:19:00 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
to an0nym смирись с этим - или заведи себе skype для обсуждения подобного рода вопросов! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2010, 15:21:28 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
vladgrig каким образом в PHP можно сделать объект не сериализуемым, либо как ограничить\отключить рефлекшн-апи? на первую часть вопроса вам уже ответили. Рефлекшн АПИ отключается элементарно. Думаю, если вы действительно специалист высокого уровня, коим себя хотите представить, найти ответ на вопрос КАК это сделать вы без затруднения сможете в документации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2010, 15:51:23 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
vladgrig to an0nym смирись с этим - или заведи себе skype для обсуждения подобного рода вопросов! Научись решать вопросы аргументами в паблик, а не отмазами про скайп. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2010, 16:14:24 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
an0nym, Да тут чтобы понять в чем дело, достаточно почитать хотя бы это . Нет, почему же, подход вполне себе имеет право на жизнь, но аргументация... дак нету ее. // http://kotishka.homeip.net/mvc-php/validate Ещё один пример - ИМХО более изысканный! У меня на сервере каталог товаров. Хочу, что бы выборка происходила по урл-у - категория, подмножество, наименование. * http://domain_name/category * http://domain_name/category/article * http://domain_name/category/article/name Ничего умнее в голову не приходит, как прописать такое же правило в корневом .htaccess, назвав хвост - catalog и, разбирать, разбирать, разбирать пришедший параметр на составные части, пытаясь выделить из него категорию, подмножество, наименование в скрипте пыха! Создай правила и не парься и дальше "аргументация" // http://kotishka.homeip.net/mvc-php/validate Нет! Нехочу зависеть от корневого .htaccess (придурок - юзая modrewrite ты уже от него зависишь! прим. автора) Нехочу по каждому чиху править правила modrewrite - вдруг понадобиться добавить свойство товара или ещё что ( а для чего же тогда предназначен modrewrite, как не для создания\правки его правил! прим. автора ) - хочу всё выполнять в скрипте PHP! Во-первых, называть потенциального оппонента придурком -- как минимум недостаток воспитания, в худшем случае способ отстоять свою точку зрения, не будучи заведомо уверенным в том, что оппонент не сможет ее опровергнуть. Во-вторых, автор по видимому не слышал ничего о динамическом роутинге запросов, который на чистом .htaccess не делается: либо все на один скрипт спихать либо пользовать RewriteMap (о котором, судя по статье автор тоже не имеет ни малейшего понятия). Внимание вопрос: как вести двухстороннюю дискуссию с человеком, который изначально отвергает возможность того, что права в той или иной ситуации может оказаться оппонирующая сторона. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2010, 16:28:00 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Anjey aka PM, (м)дааа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2010, 16:34:18 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
ПРОШУ НЕ ХОЛИВАРИТЬ ТУТ! а то и эту тему закроют модеры))) а ведь тема ни в чем не виновата, пока) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2010, 20:25:17 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r uПРОШУ НЕ ХОЛИВАРИТЬ ТУТ! а то и эту тему закроют модеры))) а ведь тема ни в чем не виновата, пока) Чтобы не холиварить нужны новые задачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2010, 20:55:46 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
авторЧтобы не холиварить нужны новые задачи! используя чистый ОО подход (всё == объекты), написать работоспособный! (исполняемый) PHP скрипт. в идеале, это перевести на PHP! Незабываем условие - всё == объекты! Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2010, 02:50:58 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
vladgrig, а найуха, простите, городить два класса ради одних только статических методов? Вы в курсе, что у вас в коде нет ни одного объекта?.. Ууу, да вы оказывается вообще про ОО ничего не знаете... Ну если вам так угодно... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2010, 09:11:01 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
an0nymВы в курсе, что у вас в коде нет ни одного объекта?.. Кроме строчки текста :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2010, 09:13:54 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2010, 09:37:27 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
vladgrig, точка входа указанная в ГУЕ и процедурно вкомпиленная в результирующий exeшник - тоже. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2010, 10:17:46 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
to an0nymОбсуждение внутренней реализации высокоуровневых языков программирования неимеет никакого отношения к поставленной задаче. - имеем PHP и ОО парадигму - это всё! внимательно изучив маны не обнаружил указания на то что конструкции Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2010, 12:19:27 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
vladgrig, в PHP просто методы объекта System резольвятся без добавления System. Примерно как в C# можно не писать this. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2010, 12:21:22 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
очередная разминка для желающих(по мотивам хабра). Дано: переменная $s хранит строку конечной длины. Задание: Написать функцию определяющую есть ли в этой строке цифры[0-9] или нет. возвращать либо true Либо false; Ограничения: нельзя использовать встроенные в php строковые функции, preg_ и ereg_ .... в общем обойтись без готовых функций. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2011, 13:18:23 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r u, Ничего сложного ничего не вижу. В цикле проверит каждый символ до того как не будет обнаружена цифра или конец строки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2011, 14:30:46 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r u, с блэкджэком и поддержкой юникода или без? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2011, 11:37:57 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
an0nym, нет надо другую придумать) у меня тут вертиться парочка, надо только сформулировать их правильно, чтоб было интереснее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2011, 12:11:45 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
несложная тоже, но : на вход системы приходит строка с датой в формате DD.MM.YYYY написать регулярное выражение максимально точно проверяющее эту строку на валидность) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2011, 12:33:11 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
А в чем подвох? Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2011, 12:43:09 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
HettА в чем подвох? Код: plaintext в том что ваша пропустит например 44.55.0000 )) Это явно невалидная дата ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2011, 12:52:40 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r u, бесполезно это делать регуляркой - учитывать 29 февраля слишком дорого. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2011, 13:17:01 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
an0nym, задача больше академическая, чем практическая. моя регулярка 113 символов получилась) учитывает что в феврале максимум 29 число. 28 февраля для високосных годов учитывать трудоемко очень, а в остальном все прекрасно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2011, 13:21:57 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r u, я про Единственный день, отсутствующий в невисокосном году, в основном бывает раз в четыре года (кроме периодов 1697—1703, 1797—1803, 1897—1903 годов, так как 1700, 1800 и 1900 годы были невисокосными). 30 февраля — по григорианскому календарю в феврале 28 дней (в високосном году — 29 дней). Однако, три раза в истории в некоторых странах в феврале было 30 дней. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2011, 13:34:09 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
an0nym, согласен. на 100% в регулярке все это учитывать трудно да и ненужно. ну а хотябы общий шаблон не пропускающий опечатки типа 00.12.2010 или 24.13.2011 - получается не очень страшный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2011, 13:38:00 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r u, вот реально лень. :) Не для того регулярки. ИМХО, задачка поинтереснее: используя любой функционал PHP (кроме написания расширения на C с ассемблерными вставками :D и всех функций и классов раздела datetime) написать функцию, возвращающую true или false в зависимости от соответствия даты некоторым условиям (четко оговорить условия) и чтобы она была быстрее остальных реализаций на 10 миллионах итераций по рандомным входным данным (распределение - ~50% соответствуют, ~50% не соответствуют из-за передачи совершенно не даты, но строки или передачи невалидной даты). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2011, 13:51:20 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r u, У меня на 137 символов получилась. А ты группировку какими скобками делал?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2011, 14:15:52 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
А алиасов в PCRE нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2011, 14:24:26 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Hettr u, У меня на 137 символов получилась. А ты группировку какими скобками делал?) ну так давай что получилось. посмотрим) обсудим ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2011, 14:37:08 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2011, 15:03:56 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Hett, -непонял если честно что такое например (?:01|03|05|07|08|10|12) -непропускает много дат, например 28.02.2010, 30.05.2010 ну и тд тоесть надо пилить дальше) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2011, 16:57:32 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Ну да, конечно, у меня формат даты получился ММ.ДД.ГГГГ , сплю на ходу Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2011, 18:44:47 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Hett, нет. по прежнему не пашет для 30.11.2010, 11.11.2010 и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2011, 20:24:50 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Hett, у меня получились шаблоны: - просто матчит - 87 символов - с расставленными ?: чтоб запоминал и возвращал только значимые сегменты dd mm yyyy - 111 символов кто меньше? ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2011, 06:25:07 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
авторИМХО, задачка поинтереснее: используя любой функционал PHP (кроме написания расширения на C с ассемблерными вставками :D и всех функций и классов раздела datetime) написать функцию, возвращающую true или false в зависимости от соответствия даты некоторым условиям (четко оговорить условия) и чтобы она была быстрее остальных реализаций на 10 миллионах итераций по рандомным входным данным (распределение - ~50% соответствуют, ~50% не соответствуют из-за передачи совершенно не даты, но строки или передачи невалидной даты). Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2011, 13:01:29 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
как-то так..., пропустит 0000000000. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2011, 13:22:47 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
авторпропустит 0000000000. хм... м.б. - пробовать влом! + значит в регулярках пыха не всё шоколадно! ;) ИМХО, просто, нужно подобрать необходимый регексп, а так, вполне! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2011, 14:17:26 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Как меня смешат такие постеры: неправильную ремарку на иностранном языке и смайлик в конце вставить умудрился, а за свой код не в ответе. С регэкспами всё ОК, просто у кого-то логика не работает в голове, соответственно это логику он не может перенести в код. . (точка) в регэкспе принимает любой символ и много людей до тебя УЖЕ показали, что вместо неё надо использовать \. (эскейп-точка). Мало того, если сматчится 00, то очевидно он будет <28 <30 <31 etc, не хватает условия > 0. Ну и чисто субъективно даже с такой простой регуляркой обогнать любую простенькую реализацию без регулярок вовсе ты на 10 млн. итераций не сможешь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2011, 14:22:31 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Еще посмешил модификатор /i. :) У нас есть заглавные и строчные цифры (\d)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2011, 14:23:55 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
авторЕще посмешил модификатор /i. :) У нас есть заглавные и строчные цифры (\d)? честно, мне плевать на ваши заглавные и строчные! я предложил вариант, до которого, судя по всему, ты не додумался ;) а уж как я, там реализовал регулярку, вместо меня подумаешь ты! авторНу и чисто субъективно даже с такой простой регуляркой обогнать любую простенькую реализацию без регулярок вовсе ты на 10 млн. итераций не сможешь. вдвойне - плевать! понадобиться др. исполнение - придумаю другое решение авторпропустит 0000000000. Код: plaintext 1. 2. 3. LOL - относись к форуму, как к форуму - а не как к способу реализации собственных амбиций - настроение сразу улучшиться! ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2011, 14:53:22 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2011, 14:59:51 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
как-то так..., я тут решение еще не выкладывал, чтобы тешить свои амбиции. :) А сагрить тролля всегда пожалуйста. Про isset, как и про \. вы не в курсе? :) Ваш последний вариант пропустит 0100100000. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2011, 15:01:30 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
А вообще бред, сначала составить не верную регулярку, а потом пытаться исправить это уже на уровне остальной логики, при этом преследуя основной целью - максимальную производительность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2011, 15:02:48 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Hett, да ладно, пускай малыш учится - язык-то тяжелый, думать много надо. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2011, 15:04:24 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
авторя тут решение еще не выкладывал, чтобы тешить свои амбиции. :) выложишь обсосём! авторда ладно, пускай малыш учится - язык-то тяжелый, думать много надо. :) угу - 9873673 авторА вообще бред, сначала составить не верную регулярку, а потом пытаться исправить это уже на уровне остальной логики, при этом преследуя основной целью - максимальную производительность. бред - не использовать встроенные функции (datetime)!!! ну, это так - лирическое отступление. авторВаш последний вариант пропустит 0100100000. Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2011, 15:40:59 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
авторчто-то ещё, относительно регулярного выражения?! ;) То что он будет считать валидной строку 00.00.000000000 ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2011, 15:53:11 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
как-то так..., к сожалению (вашему :DDDDDDDDDDDDDDDD), да. Регулярка пропустит aaa01.01.0000aaa. :DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD как-то так...честно, мне плевать на ваши заглавные и строчные! я предложил вариант, до которого, судя по всему, ты не додумался ;) а уж как я, там реализовал регулярку, вместо меня подумаешь ты! вдвойне - плевать! понадобиться др. исполнение - придумаю другое решение LOL - относись к форуму, как к форуму - а не как к способу реализации собственных амбиций - настроение сразу улучшиться! ;) Так вот. Если тебе плевать, не правь ошибки - тебе же плевать?! Вместо тебя думать я не буду, не расплатишься за такие услуги. Вдвойне плевать тем более не надо, так как может получиться, что через пару страниц ты будешь думать над другим исполнением (если текущие весомые правки не считать таковыми). Относись к форуму и людям, которые хотят помочь твоему обучению, с уважением, а не так, как сейчас. Люди к тебе тоже начнут относиться хорошо (в том числе я). В подтверждение к этому ты сам же привел ссылку моего адекватного поведения [msg 9873673]. Если я чего-то не знаю и меня люди поправляют, я свою ошибку признаю и пытаюсь в будущем её исправить, а не агриться, чего и тебе советую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2011, 15:58:18 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Hett, черт. Зря я показал, что регулярка с двух сторон пропустит лишние символы. :) Надо было как вы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2011, 15:58:57 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
авторТо что он будет считать валидной строку 00.00.000000000 ) так или иначе, тебе придётся проверить, не будет ли год высокосным - так, что не заморачивайся! ;) ну, или заморочся! ;))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2011, 15:59:30 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
<жёсткий OFF> авторОтносись к форуму и людям, которые хотят помочь твоему обучению, с уважением, а не так, как, сейчас. 1 - самое главное - я здесь ни у кого ничего не спрашивал - просто предложил вариант решения задачи - почему ты записался в мои преподаватели, я так и непонял?! + как сейчас?! тоже не совсем понятно ;) 2 - прочти 10251857 10251869 в последовательности твоих\моих ответов + подумай над состоятельностью своего совета автора не агриться, чего и тебе советую. 3 - авторВместо тебя думать я не буду, не расплатишься за такие услуги. ты уже это делаешь (причём абсолютно бесплатно ;) - спс. тебе "добрый человек" ! <OFF> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2011, 16:12:13 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
как-то так..., я не думаю, ибо свою версию уже реализовал и всё обдумал. :) Прежде чем приводить ссылки на мои посты, прочитай своё "сам придумай" - как ты, так и к тебе. Сами придумывать за тебя тут никто не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2011, 16:18:52 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Возвращаясь к регулярке. у меня короче этого не получается. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2011, 05:49:05 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Задачка: Перевести число из шестнадцатеричной системы счисления в десятичную с пом. SQL запроса. Диалект любой: Mysql,Oracle,Postgress. Нельзя использовать готовые функции преобразования или пользоваться расширенными возможностями - типа своих функций, триггеров, пакетов и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2011, 11:30:35 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r u, в смысле надо реализовать, чтобы во всех трех диалектах работало или в любом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2011, 12:06:27 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
an0nymr u, в смысле надо реализовать, чтобы во всех трех диалектах работало или в любом? в любом из перечисленных, одном. но если удастся сделать универсальное решение - то будет просто мега респект) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2011, 12:22:50 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r u, А циклы while можно? Это не везде работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2011, 12:31:21 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
ShSerger u, А циклы while можно? Это не везде работает. циклы внутри SQL запроса? - да можно ps чувствую варианты решений будут интересные ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2011, 12:38:57 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r u, в Оракле элементарно делается через иерархические запросы, но думаю, это не то что вам нужно? Какая цель этой задачи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2011, 13:01:55 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
В MySQL область входных (и соответственно выходных) значений будет ограничена. Про Postgres сходу сказать не могу, но по моему там не будет ограничения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2011, 13:03:25 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
an0nymr u, в Оракле элементарно делается через иерархические запросы, но думаю, это не то что вам нужно? Какая цель этой задачи? да почему не то? ) решение есть решение. цель в том - чтобы научиться решить на SQL задачи отличающиеся от выборки по ключу или джойнов. подобные выкрутасы в обычной жизни бывают нужны редко - но иногда полезны, особенно когда нужно одним запросом получить сразу много всякой информации да еще и обработать по максимуму значения на стороне БД. задача конечно не очень сложная, но требует знаний некоторых особенностей, которые значительно упрощают(уменьшают) решение и его код. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2011, 13:09:41 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r u, преобразовывать числа > BIGINT нужно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2011, 13:37:04 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
an0nymr u, преобразовывать числа > BIGINT нужно? нет. работа со сверхбольшими числами - это отдельная история) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2011, 13:44:31 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r u, Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2011, 13:45:33 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Для чисел произвольного размера надо реализовать сложение в столбик. :D Для преобразования более одного числа за раз придется извращаться с переменными, но тоже возможно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2011, 13:47:02 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
an0nym, да подобное решение я и имел в виду) у меня правда немного отличается но идея таже) для Оракла я такое смог родить Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2011, 13:58:48 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r u, у меня вот так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2011, 14:03:04 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Это не интересно преобразовать 16-ричную строчку в число (а вовсе не в десятичную строку). Работайте, товарищи, работайте. То же самое на MS SQL, но с произвольным основанием, заданным строкой символов: Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2011, 14:10:01 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
ShSerge, Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2011, 14:19:10 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
ShSerge, хотя ваш вариант подходит под условие задачи, всеже более интересны решения не использующие такие алгоритмические высокоуровневые возможности как цикоы, функции и т.д. а так можно и на PL\SQL было написать, и вообще без запросов) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2011, 06:57:15 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Предлагаю всем решить задачку http://habrahabr.ru/blogs/php/116686/, не смотря в комментарии. Своё решение выложу после нескольких ответов, у меня уже готово. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2011, 00:09:10 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Правильная ссылка http://habrahabr.ru/blogs/php/116686/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2011, 00:10:52 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Подумалось Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Код: plaintext 1. 2. 3. 4. 5. 6. - как раз думал над этим вопросом недавно - немог решить, плюнул - и тут, вдруг, вышло! ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2011, 11:16:09 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
vladgrig Код: plaintext 1. Это как раз самое интересное. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2011, 15:45:10 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r u, 3 массива + строка + rand() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2011, 17:56:18 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Для затравки Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Был сильно удивлен, что реализация panandy обгоняет мою. :) Кто-нибудь сможет обогнать его? как были сгенерированы результаты Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2011, 18:30:28 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
an0nym , А прогони еще такие варианты: - разбор регуляркой, - создание а) eval-ом, б) код panandy. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2011, 21:07:28 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Кстати, запустил код panandy , получил так: Код: plaintext 1. 2. 3. 4. 5. 6. А мои выдают: Код: plaintext 1. 2. 3. 4. 5. 6. Т.е. explode тянет перевод строки, если конфиг с виндовыми \n, а регулярки не тянут, т.е. выходит предпочтительнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2011, 21:18:38 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Хотя нет. Если быть точнее, при UNIX EOL получаю регулярками: Код: plaintext 1. При WIN EOL регулярками: Код: plaintext 1. 2. Ну а при построчной обработке - 9 и 10 соответственно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2011, 21:26:53 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Т.е. при любом EOL-е при построчной обработке получаем захват EOL-а в данные А с регулярками, либо правильно, либо пол-EOL-а ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2011, 21:29:36 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Затестил так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. Где read_conf_c - это его код. Увы. eval вообще никакой критики не выдерживает. А регулярка чуть медленее вышла (иногда одинаковые результы показывает): Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2011, 21:45:49 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
авторА регулярка чуть медленее вышла В смысле, регулярка и там, и там. А имелось ввиду "регулярка без eval-a, а с циклом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2011, 21:46:49 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Edd.Dragon, вот такие вот косяки я считал за помарки и исправлял в коде у хабровцев (у 4 или 5 была такая помарка). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2011, 23:07:43 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Edd.Dragon, меня чуть-чуть обогнал (на самом деле между запусками ты или на несколько сотых быстрее моего или на несколько сотых медленнее; panandy всегда обгоняет и тебя и меня ) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2011, 23:14:00 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. 237. 238. 239. 240. 241. 242. 243. 244. 245. 246. 247. 248. 249. 250. 251. 252. 253. 254. 255. 256. 257. 258. 259. 260. 261. 262. 263. 264. 265. 266. 267. 268. 269. 270. 271. 272. 273. 274. 275. 276. 277. 278. 279. 280. 281. 282. 283. 284. 285. 286. 287. 288. 289. 290. 291. 292. 293. 294. 295. 296. 297. 298. 299. 300. 301. 302. 303. 304. 305. 306. 307. 308. 309. 310. 311. 312. 313. 314. 315. 316. 317. 318. 319. 320. 321. 322. 323. 324. 325. 326. 327. 328. 329. 330. 331. 332. 333. 334. 335. 336. 337. 338. 339. 340. 341. 342. 343. 344. 345. 346. 347. 348. 349. 350. 351. 352. 353. 354. 355. 356. 357. 358. 359. 360. 361. 362. 363. 364. 365. 366. 367. 368. 369. 370. 371. 372. 373. 374. 375. 376. 377. 378. 379. 380. 381. 382. 383. 384. 385. 386. 387. 388. 389. 390. 391. 392. 393. 394. 395. 396. 397. 398. 399. 400. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2011, 23:15:27 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
an0nymEdd.Dragon, меня чуть-чуть обогнал (на самом деле между запусками ты или на несколько сотых быстрее моего или на несколько сотых медленнее; panandy всегда обгоняет и тебя и меня ) То я не тебя обогнал, а код пандани немного подпортил ))) Если бы полностью иной код - другое дело А так, свежая и смелая идея с эвалом не прошла ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2011, 23:36:27 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Edd.Dragon, у меня код panandy немного поправлен, посмотри в листинге. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2011, 23:40:19 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
an0nym, Ну то мелочь. Основные вопросы6 - как быстрее обработать текст, т.е. получить пары строк; - как быстрее из этих пар строк создать ассоц. массив. Ну видимо, тут уже ничего особого не намудришь (при условии, что конфиг корректен и не содержит лишнего, что нужно пропускать). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2011, 11:40:27 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
an0nym, незнаю актуально или нет)) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2011, 19:44:05 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r u, чуть дольше panandy. Можете сами протестить. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2011, 02:12:33 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
an0nymr u, чуть дольше panandy. Можете сами протестить. :) вот чуть чуть раскочегарил) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2011, 08:22:35 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r u, реализации очень синтетические. в реальном конфиге вполне могут быть пустые строки, комментарии, некорректные или отсутсвующие значения и т.д. тоесть надо чтоб функция не умирала на них и не выдавала варнингов и нотисов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2011, 08:32:12 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r u, в этом смысле наши реализации вполне подходят (с file(..., FILE_SKIP_EMPTY_LINES | FILE_IGNORE_NEW_LINES)). Проблемы начнутся только когда будет неоднозначное присвоение: a.b=c a.d=e a=f. Работать будет, но вот не обязательно, как хотелось бы. И еще надо внести правки насчет значения по умолчанию в случае a.b= или просто a.b но это полстрочки кода, которая сильно не замедлит. Вот если начать исключать невалидные строки (первый пример выше или, например, a..=aaa) - да, скорость сильно ухудшится. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2011, 08:49:02 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Т. е. я хотел сказать, что текущие самые быстрые решения полностью рабочие. :) Они умеренно правильно (на мой взгляд) съедят даже ошибочные строки. А вот если начнутся разговоры типа "Мы в конфиг можем и что-нибудь не то написать [имею в виду не инъекцию для evalа] - надо бы защититься от этого" - то там уже начнутся тормоза и сильное усложнение. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2011, 08:52:48 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Дана строка: Код: plaintext 1. * Уточнения и ограничения: - не использовать eval() - числа в строке: десятичные int или float - арифметические операции: + - * / - исходить что входная строка корректна, те содержит только парные скобки и корректную вложенность(валидность входного выражения проверять ненужно) - проверить правильность вычисления можно в поиске Гугла, там встроенный калькулятор ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2011, 06:27:21 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r u, Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2011, 10:39:21 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
artas, решений много. конечные автоматы, регулярки.... нагрузить для расчетов гугл - не самое лучшее решение) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2011, 10:47:06 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
В калькуляторе Windows 7 явно не 100 получается :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2011, 10:54:59 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
HettВ калькуляторе Windows 7 явно не 100 получается :) ну это известная фича) там калькулятор вычисляет в порядке ввода а не в порядке приоритета операций и скобок, как я понимаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2011, 11:15:40 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
2+2*2 == 6 по крайней мере ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2011, 11:19:11 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
(2+2)*2 == 8 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2011, 11:20:22 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Ну врет то все же калькулятор винды. В пхп и mysql тоже 100 получается) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2011, 11:27:16 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
А, ясно, все дело в разделителях у вещественных чисел. Так и виндовый 100 выдает Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2011, 11:42:40 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
an0nym, только тут строка как вы видите в другом формате) соответсвенно проблемы её разбора и обработки несколько отличаются. но в целом можно и так например на регекспах, понятно что тормознее, зато кода в разы меньше) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2011, 13:23:08 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r u, на регэкспах имхо очень трудно будет обработать неограниченную вложенность скобок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2011, 18:02:46 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r uДана строка: Код: plaintext 1. * Уточнения и ограничения: - не использовать eval() - числа в строке: десятичные int или float - арифметические операции: + - * / - исходить что входная строка корректна, те содержит только парные скобки и корректную вложенность(валидность входного выражения проверять ненужно) - проверить правильность вычисления можно в поиске Гугла, там встроенный калькулятор Вот, накидал регулярками Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2011, 18:51:47 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Vaytl, да, регулярками у меня тоже подобный подход, только код немного другой) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2011, 05:21:57 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r u, Хотелось бы увидеть ваш код, для сравнения…(если можно) Немного поправил свой код: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2011, 19:05:38 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Vaytl, мой вариант через регулярки Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2011, 19:42:04 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r u, Спасибо, очень познавательно + в 2-3 раза быстрее моего примера… ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2011, 19:54:01 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
имхо, у решения через регекспы есть существенный минус - скорость работы. замеры скорости не делал, но чтобы не быть голословным решил написать решение "классически" - с пом. трансляции в польскую нотацию и последующим её вычислением(выше свой вариант приводил an0nym). только я не стал решать задачу настолько широко и универсально, получилось чтото такое Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. если не считать одного регекспа(использовал его для уменьшения кода, он заменяется одним прогоном строки), это решение сканирует выражение всего пару раз. пытался написать алгоритм вычисления налету с одним прогоном - но неосилил)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2011, 19:58:47 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r uимхо, у решения через регекспы есть существенный минус - скорость работы. замеры скорости не делал, но чтобы не быть голословным решил написать решение "классически" .... Как ни странно, но ваш пример через регекспы, работает быстрее второго варианта на 50-100%... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2011, 20:13:04 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
VaytlКак ни странно, но ваш пример через регекспы, работает быстрее второго варианта на 50-100%... странно))) думал будет наоборот ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2011, 20:18:21 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
VaytlКак ни странно, но ваш пример через регекспы, работает быстрее второго варианта на 50-100%... добился небольшого но выигрыша в скорости второго варианта ) избавился от регекспа и функции _addPnItem() (передача по ссылке тормозила, глобальные переменные тоже). думаю можно оптимизировать и сам алгоритм, но это уже отдельная история) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2011, 08:06:21 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Дан массив чисел: Код: plaintext 1. 2. 3. 4. необходимо найти это число всего за один проход массива. PS всякие готовые функции array_xxxxx() и т.п. использовать нельзя ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2011, 11:52:59 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
а в чем прикол Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2011, 11:58:02 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
ScareCrowа в чем прикол Код: plaintext 1. 2. 3. ну вы получили еще один массив. выведите найденный элемент ,только его )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2011, 12:02:15 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
без прохода по второму массиву? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2011, 12:10:19 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
ScareCrowбез прохода по второму массиву? да. тогда уточню немного. Дан массив чисел: Код: plaintext 1. 2. 3. 4. 5. Как видно, в массиве все числа, кроме одного, встречаются 2 раза, а одно число(7) только один раз. необходимо найти это число, всего за один проход массива, и поместить найденное число в переменную $n . PS всякие готовые функции array_xxxxx() и т.п. использовать нельзя ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2011, 13:44:10 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r u, $a = array( 0,1,2,3,4,5,6,7,8,9, 0,1,2,3,4,5,6, 8,9 ); $n = 0; foreach($a as $v){ $n=$n ^ $v; //иногда исключающее или всетаки нужно } echo $n; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2011, 18:58:21 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
artas, поздравляю) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2011, 10:41:32 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Тоже самое задание, но.... Дан массив букаф: Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2011, 13:26:15 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
artas, решение тоже самое. только изначально $n="\0"; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2011, 13:38:16 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Добейтесь появления у объекта двух свойств с одинаковым названием и разной областью видимости. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2012, 02:48:15 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
an0nymДобейтесь появления у объекта двух свойств с одинаковым названием и разной областью видимости. :) легко ) Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2012, 05:49:19 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Усложняем задачу: -Добейтесь появления у объекта ТРЕХ свойств с одинаковым названием и разной областью видимости. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2012, 09:13:44 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
И я немного усложню: добейтесь появления у объекта класса без родителей и наследников двух свойств с одинаковым названием и разной областью видимости. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2012, 13:27:30 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
и без примесей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2012, 13:30:28 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r uScareCrowбез прохода по второму массиву? да. тогда уточню немного. Дан массив чисел: Код: php 1. 2. 3. 4. 5. Как видно, в массиве все числа, кроме одного, встречаются 2 раза, а одно число(7) только один раз. необходимо найти это число, всего за один проход массива, и поместить найденное число в переменную $n . PS всякие готовые функции array_xxxxx() и т.п. использовать нельзяа как насчет того же самого, только с двумя "одинокими" числами? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2012, 16:20:33 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
an0nymИ я немного усложню: добейтесь появления у объекта класса без родителей и наследников двух свойств с одинаковым названием и разной областью видимости. пойдет? Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2012, 07:59:37 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r u, не, должны быть именно два поля. Примерно как в первом варианте ответа, только без наследования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2012, 09:10:47 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
an0nymr u, не, должны быть именно два поля. Примерно как в первом варианте ответа, только без наследования. -serialize -modify -unserialize ? )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2012, 10:22:53 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r u, "ты знал" (c) :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2012, 12:10:01 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Вот только непонятно, баг это или нет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2012, 12:18:08 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
an0nymВот только непонятно, баг это или нет... ну получить такой объект можно, а вот что с ним дальше делать? с доступом к полям будут проблемы ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2012, 12:24:36 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r u, ага. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2012, 12:26:55 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Яростный Меча как насчет того же самого, только с двумя "одинокими" числами? :) за один проход массива? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2012, 12:59:47 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r uЯростный Меча как насчет того же самого, только с двумя "одинокими" числами? :) за один проход массива?да, забыл сказать, не обязательно за один. можно несколько, пусть будет не более 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2012, 13:43:12 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Яростный Меч, поздно..... сделал за один )) ну и проход по вспомогательному еще. без него не придумал как. Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2012, 14:17:33 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
r u, я правильно понимаю, что тут есть вложенный цикл (длина которого равна очередному числу)? если да, то фактически сложность будет больше O(N) есть простой, линейный вариант, без вспомогательного массива. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2012, 14:26:00 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Яростный Мечr u, я правильно понимаю, что тут есть вложенный цикл (длина которого равна очередному числу)? если да, то фактически сложность будет больше O(N) есть простой, линейный вариант, без вспомогательного массива. Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. список всех значений которые встречються только 1 раз ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2012, 14:55:31 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Ренат, $filter лишнее. но получается тоже не то. продолжаем искать вариант без вспомогательных массивов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2012, 05:59:38 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Сегодня пытался написать регулярку, которая преобразовывала бы бб-код: Код: plaintext 1. item 2[/li] item 3[/li] в HTML. Дополнительная сложность в том, что нужно удалить символы перевода строки, т.к. текст потом еще обрабатывается с помощью nl2br. Честно говоря посидев над задачей минут 15 одной регуляркой сделать это так и не получилось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2012, 17:28:08 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
извиняюсь, тег не закрыл, но думаю суть понята. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2012, 17:28:23 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
а нет, тег то я видимо закрыл, тут движок воспринял это как свои теги) Код: html 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2012, 17:29:53 |
|
||
|
(PHP) Разминка для мозгов
|
|||
|---|---|---|---|
|
#18+
Hett, а одной регуляркой тут обойтись если и можно то очень накладно будет. я бы сделал както так Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2012, 05:54:02 |
|
||
|
|

start [/forum/topic.php?all=1&fid=23&tid=1465177]: |
0ms |
get settings: |
10ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
205ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
169ms |
get tp. blocked users: |
1ms |
| others: | 226ms |
| total: | 645ms |

| 0 / 0 |
