Loading...
DeyanAltanov avatar DeyanAltanov 6 Точки

Santa's Secret Helper

Условие(Задача 5): https://softuni.bg/trainings/resources/officedocument/41886/exercise-problem-descriptions-php-fundamentals-may-2019/2344

Решение(33/100): https://pastebin.com/ekMxELnN

На единя от тестовете се вижда, как ми изкарва израза: DReh}e=<4lhzj1%K%(@Nadya980hdvf-!G!), като невалиден. Не разбирам защо.

Тагове:
0
PHP Fundamentals
DeyanAltanov avatar DeyanAltanov 6 Точки

Трябва да deny-на @ - ! : >. Ще коригирам и ще проверя.

0
05/08/2019 18:33:28
willystyle avatar willystyle 2472 Точки

Гледам, че още не си си открил грешката.  Трябва с един регекс за мачнеш всичко, за да се хване и реда на групите име->поведение:

<?php 
$key = intval(readline()); 
$pattern = '/@([A-Za-z]+)[^@\-!:>]*!([GN])!/'; 
$names = []; 
$input = readline(); 
while ($input != 'end')
{
    $word = ''; 
    for ($i = 0; $i < strlen($input); $i++)
    {
        $char = ord($input[$i]) - $key;
        $char = chr($char);
        $word .= $char;
    } 
    if (preg_match($pattern, $word, $arr))
    {
        $name = $arr[1];
	$behaviour = $arr[2];
	$names[$name] = $behaviour;        
    }
    $input = readline();
} 
foreach ($names as $name => $behaviour)
{
    if ($behaviour == 'G')
    {
        echo $name.PHP_EOL;
    }
}

 

0
06/08/2019 10:18:08
DeyanAltanov avatar DeyanAltanov 6 Точки

Открих я, но успях да го докарам само до 66/100. :)

Сравних двата израза и едната грешка беше, че след [^@\-!:>] бях сложил \w+, вместо *(което няма връзка, понеже така казвам, че задължително трябва да има и букви/цифри). Другата грешка, беше [A-Z]{1}[a-z]+(мислех, че името задължително почва с главна).

Мерси много!

0
07/08/2019 01:18:11
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.