
F01134H
18.08.2016
21:16:55
Ладно, шутка не удалась, без обид если что)

Sergey
18.08.2016
21:17:21
да всё в порядке
не могу придумать, сука, признак остановки

? BoobkaGop ?
18.08.2016
21:18:17
А большой выбор что ли

Google

? BoobkaGop ?
18.08.2016
21:19:18
Длина строки, содержимое строки, номер итерации

F01134H
18.08.2016
21:20:07
а что ты делаешь, если не секрет?

Sergey
18.08.2016
21:20:19
Тестовое задание )
выдали мне

? BoobkaGop ?
18.08.2016
21:20:22
Ебет нам голову)

F01134H
18.08.2016
21:20:29
?

Sergey
18.08.2016
21:20:37
ну можем про порно с наркотиками поговорить

F01134H
18.08.2016
21:20:50
не не)

Виктор
18.08.2016
21:22:04
0_o

F01134H
18.08.2016
21:22:32
т.е. тебе нужно установить фиксированное количество итераций?

Sergey
18.08.2016
21:22:44
мне нужно понять когда пора бы остановиться )
когда я уже занимаюсь не заменами

F01134H
18.08.2016
21:23:02
а какая причина для этой остановки

Google

Sergey
18.08.2016
21:23:04
а попал в бесконечную рекурсию
Ты запусти код
хоть в консоли
сразу станет ясно
а то я, видимо, как-то плохо объясняю

F01134H
18.08.2016
21:23:50
ну, в смысле, программа сама должна решить, сколько тебе нужно повторений aaaa1111?
я уже посмотрел и понял, про что ты

Sergey
18.08.2016
21:24:01
ага

F01134H
18.08.2016
21:24:14
но для этого у нее должно быть самосознание, не? :D

Sergey
18.08.2016
21:24:34
вот мне кажется, что этот ответ не устроит работодателя )

F01134H
18.08.2016
21:24:45
может ты как то не так вопрос прочитал?
Не может быть такого, что бы программа сама решала, что делать
это набор инструкций же

Sergey
18.08.2016
21:25:00
Замена должна производиться рекурсивно, т.е. если после замены в тексте остались или появились вхождения для замены, то их тоже нужно заменить. Предусмотрите защиту от зацикливания при замене.
вот текст )
вот я не понимаю как предусмотреть защиту по нормальному

F01134H
18.08.2016
21:27:47
получается, что вхождение для замены может измениться только внутри этой функции?
иначе придется рекурсию по новой пускать

Sergey
18.08.2016
21:28:22
ну рекурсия сама себя запускает, пока кол-во изменений больше 0

F01134H
18.08.2016
21:29:26
так, и типо между запусками $search или $replace могут поменяться?

Google

Sergey
18.08.2016
21:29:40
меняется только строка $content

F01134H
18.08.2016
21:30:31
я не знаю, че там за работа у тебя, наверное на программирование адронного коллайдера

Sergey
18.08.2016
21:31:05
Да, и замена продолжается ) но в задании написано, что нужно предусмотреть защитц
вряд ли имеется ввиду таймер или огрпничение кол-ва рекурсии в php.ini )

F01134H
18.08.2016
21:32:56

Sergey
18.08.2016
21:34:52
а если bbbb заменили на aaaa

Admin
ERROR: S client not available

F01134H
18.08.2016
21:35:25
но ты же сказал $replace нельзя менять во время цикла

Sergey
18.08.2016
21:36:07
если изначально условие $replcase = array("aaaa"=>"aaaa1111", "bbbb"=>"aaaa")

F01134H
18.08.2016
21:36:56

Sergey
18.08.2016
21:37:49
ох не, эти не опечатываются )

Sergey
18.08.2016
21:42:17
для входных данных 11115555
И замены (1111=>5555, 5555=>1111)
не прокатит
всегда будет вхождение всё равно

Aleh
18.08.2016
21:43:06
Набор правил:
аa => b
b => cd
c => a
d => a
На вход подаем "аа"
Это можно вычислять до начала самой замены, в общем-то

Sergey
18.08.2016
21:44:08
нипанятна, объясни для тупых пожалуйста

Aleh
18.08.2016
21:44:47
Сейчас обмозгую простой алгоритм

Google

Aleh
18.08.2016
21:45:49
Но я правильно понял задачу, если взять мой набор правил, то должна быть бесконечная рекурсия и надо придумать способ защиты?

Сергей
18.08.2016
21:46:06
да

Sergey
18.08.2016
21:46:18
и если бесконечная рекурсия, то надо как-то это понять

Aleh
18.08.2016
21:46:35

Sergey
18.08.2016
21:46:56
в твоем - да

Сергей
18.08.2016
21:47:04
вот заменялку накидал
$input = "верх aaaa верх";
function parseTagsRecursive($input)
{
$rules = [
'a' => 'a1'
];
$regex = '/a/';
if(is_array($input)){
$input = $rules[$input[0]];
}
return preg_replace_callback($regex, 'parseTagsRecursive', $input);
}
и она зацикливается