Sulla base di QUESTA domanda.
Dato una stringa, sostituire ogni parentesi ()[]{}<>con una parentesi del tipo appropriato in modo che le parentesi corrispondano e le parentesi nidificate si alternano come segue:
- Quelli più esterni lo sono
() - Direttamente all'interno di
()dovrebbe essere[] - Direttamente all'interno di
[]dovrebbe essere{} - Direttamente all'interno di
{}dovrebbe essere<> - Direttamente all'interno di
<>sarà di()nuovo (cicli)
Tutti i caratteri non parentesi devono rimanere esattamente come sono. Le parentesi aperte possono essere sostituite solo con parentesi aperte di qualche tipo e parentesi chiuse con parentesi chiuse.
L'input lo renderà sempre possibile. Questo significa che le sue parentesi corrispondono correttamente se il loro tipo viene ignorato. Quindi, {ab<)c]è un input valido, ma ab)(cdo ab((cdnon lo sono.
Esempi:
2#jd {¤>. = 2#jd (¤).
abcdef = abcdef
(3×5+(4-1)) = (3×5+[4-1])
<<<>><<>><<<<<<>>>>>>> = ([{}][{}][{<([{}])>}])
L'uso della trasformazione nativa dell'input in questo modo (sintassi automatica del linguaggio) non è consentito.
Come sempre: vince il codice più corto.