Decode Bracket String
PHP
Hard
5 views
Problem Description
Decode pattern like 3[a2[c]] -> accaccacc.
Input Format
One line encoded string.
Output Format
One line decoded.
Constraints
Output length
Official Solution
<?php
$inputText=rtrim(stream_get_contents(STDIN));
if($inputText==='') exit;
$num=0; $stack=[]; $cur='';
for($i=0,$n=strlen($inputText);$i<$n;$i++){
$ch=$inputText[$i];
if(ctype_digit($ch)) $num=$num*10 + (ord($ch)-48);
elseif($ch==='['){
$stack[] = [$cur,$num];
$cur=''; $num=0;
}elseif($ch===']'){
[$prev,$k]=array_pop($stack);
$rep='';
for($t=0;$t<$k;$t++) $rep.=$cur;
$cur=$prev.$rep;
}else $cur.=$ch;
}
echo $cur;
?>
Solutions (0)
No solutions submitted yet. Be the first!
No comments yet. Start the discussion!