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)(cd
o ab((cd
non 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.