Message Decrypter
evgeni4 avatar evgeni4 12 Точки

Message Decrypter

Здравейте колеги, може ли малко помощ. за тая задача

проверката ми дава 80/100 

това ми е кода

Message Decrypter

Create a program, that checks if inputs have a valid message and decrypt it. On the first line you will receive a number that indicates how many inputs you will receive on the next lines.

A message is valid when:

  • There is nothing else before and after it
  • It starts with a tag, which is surrounded by either '$' or '%' (but not both at the same time), the tag itself has to be minimum 3 characters long, start with a uppercase letter, followed only by lowercase letters
  • There is a colon and a single white space after the tag
  • There are 3 groups consisting of numbers between '[' and ']', followed by a pipe ('|')

Example for a valid message:

"$Request$: [73]|[115]|[32]|"

You must check if the message is valid and if it is- decrypt it, if it isn’t - print the following message:

"Valid message not found!"

Decrypting a message means to take all numbers and turn them into ASCII symbols. After successful decrypt, print it in the following format:

{tag}: {decryptedMessage}


  • On the first line - n - the count of inputs.
  • On the next n lines - input that you have to check if it has a valid message.


  • Print all results from each input, each on a new line.






$Request$: [73]|[115]|[105]|

%Taggy$: [73]|[73]|[73]|

%Taggy%: [118]|[97]|[108]|

$Request$: [73]|[115]|[105]|[32]|[75]|


Request: Isi

Valid message not found!

Taggy: val

Valid message not found!

We have 3 input lines to check.
The first one follows the rules and is valid. The second one doesn’t because the tag is surrounded by both '%' and '$'. The third one has a valid message and is in the beginning of the input. The last one is invalid because it has more than 3 groups of numbers.


This shouldnt be valid%Taggy%: [118]|[97]|[108]|

$tAGged$: [97][97][97]|

$Request$: [73]|[115]|[105]|true

Valid message not found!

Valid message not found!

Valid message not found!



PHP Fundamentals
willystyle avatar willystyle 1792 Точки
$n = intval(readline());
$regex= '/^([$%])([A-Z][a-z]{2,})\1: \[(\d+)\]\|\[(\d+)\]\|\[(\d+)\]\|$/';
for ($d = 0; $d < $n; $d++) {
    $message = readline();
    if (preg_match($regex, $message, $matches)) {        
        $tag = $matches[2];
        $decryptedMessage = chr($matches[3]) . chr($matches[4]) . chr($matches[5]);
        echo "{$tag}: {$decryptedMessage}\n";
    } else {
        echo "Valid message not found!\n";


evgeni4 avatar evgeni4 12 Точки

Благодаря ти много