ocehb: (Default)
[personal profile] ocehb
phpшников ищут:


Отбор кандидатов будет включать: выполнение теста на знания, решение двух тестовых задач и личное собеседование. Очень сильно поднимаются Ваши шансы, если пришлете алгоритм словами и php-код решения (или нескольких решений) следующей задачи:

Сделать, чтобы для строки
"{Пожалуйста|Просто} сделайте так, чтобы это {удивительное|крутое|простое} тестовое предложение {изменялось {быстро|мгновенно} случайным образом|менялось каждый раз}."
выдавались все возможные варианты (вложенность не ограничена).

Например, строка "{a|b|c}" порождает три варианта: «a», «b» или «c».
А "{a | b {c|d}}" дает: «a», «b c» и «b d».



мое решение:

# print "{Пожалуйста|Просто} сделайте так, чтобы это {удивительное|крутое|простое} тестовое предложение {изменялось {быстро|мгновенно} случайным образом|менялось каждый раз}." | \
  perl -lne 's#,#\##g; s#\|#,#g; s#\s#_#g; foreach (glob) { s#_# #g; s#\##,#g; print }'
Пожалуйста сделайте так, чтобы это удивительное тестовое предложение изменялось быстро случайным образом.
Пожалуйста сделайте так, чтобы это удивительное тестовое предложение изменялось мгновенно случайным образом.
Пожалуйста сделайте так, чтобы это удивительное тестовое предложение менялось каждый раз.
Пожалуйста сделайте так, чтобы это крутое тестовое предложение изменялось быстро случайным образом.
Пожалуйста сделайте так, чтобы это крутое тестовое предложение изменялось мгновенно случайным образом.
Пожалуйста сделайте так, чтобы это крутое тестовое предложение менялось каждый раз.
Пожалуйста сделайте так, чтобы это простое тестовое предложение изменялось быстро случайным образом.
Пожалуйста сделайте так, чтобы это простое тестовое предложение изменялось мгновенно случайным образом.
Пожалуйста сделайте так, чтобы это простое тестовое предложение менялось каждый раз.
Просто сделайте так, чтобы это удивительное тестовое предложение изменялось быстро случайным образом.
Просто сделайте так, чтобы это удивительное тестовое предложение изменялось мгновенно случайным образом.
Просто сделайте так, чтобы это удивительное тестовое предложение менялось каждый раз.
Просто сделайте так, чтобы это крутое тестовое предложение изменялось быстро случайным образом.
Просто сделайте так, чтобы это крутое тестовое предложение изменялось мгновенно случайным образом.
Просто сделайте так, чтобы это крутое тестовое предложение менялось каждый раз.
Просто сделайте так, чтобы это простое тестовое предложение изменялось быстро случайным образом.
Просто сделайте так, чтобы это простое тестовое предложение изменялось мгновенно случайным образом.
Просто сделайте так, чтобы это простое тестовое предложение менялось каждый раз.
#


шутка :)

Date: 2011-02-25 05:43 pm (UTC)
From: [identity profile] what-me.livejournal.com
#!/usr/bin/perl -l
use strict;
use Regexp::Common;

sub p {
  my $s = shift;
  s/^.|.$//g for grep /^$RE{balanced}{-parens=>'{}'}$/, $s;
  $s =~ s/$RE{balanced}{-parens=>'{}'}{-keep}/p($1)/eg;
  my @a = split '\|', $s;
  return $a[rand @a];  
}

my $phrase = '{Пожалуйста|Просто} сделайте так, чтобы это
{удивительное|крутое|простое} тестовое предложение {изменялось
{быстро|мгновенно} случайным образом|менялось каждый раз}.';

print p($phrase);


Profile

ocehb: (Default)
ocehb

January 2021

S M T W T F S
     12
345 6789
10111213141516
17181920212223
24252627282930
31      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 6th, 2026 06:39 am
Powered by Dreamwidth Studios