Boş olmayan, doğru dengelenmiş bir parantez dizisi düşünün:
(()(()())()((())))(())
Her parantez çiftinin daraltılmış bir teleskopik yapıdaki bir halkayı temsil ettiğini hayal edebiliyoruz . Öyleyse teleskopu uzatalım:
( )( )
()( )()( ) ()
()() ( )
()
Buna bakmanın başka bir yolu da n derinliğindeki parantezlerin yatay pozisyonlarını koruyarak n çizgisine hareket etmeleridir.
Senin görevin böyle bir parantez parantez almak ve genişletilmiş sürümünü üretmektir.
STDIN (veya en yakın eşdeğeri), komut satırı argümanı veya işlev parametresi üzerinden giriş alarak ve STDOUT (veya en yakın eşdeğeri), return değeri veya function (out) parametresi üzerinden çıktı üreten bir program veya işlev yazabilirsiniz.
Giriş dizesinin geçerli olduğunu, yani yalnızca doğru şekilde dengelenmiş parantezleri içerdiğini varsayabilirsiniz.
Her satırda sondaki boşlukları yazdırabilirsiniz, ancak gerekenden daha fazla sayıda ön boşluk bırakamazsınız. Toplamda, satırların giriş dizesinin uzunluğunun iki katından daha uzun olmaması gerekir. İsteğe bağlı olarak tek bir izleyen yeni satır yazdırabilirsiniz.
Örnekler
Yukarıdaki örneğe ek olarak, birkaç test durumu daha var (giriş ve çıkış boş bir satırla ayrılmıştır).
()
()
(((())))
( )
( )
( )
()
()(())((()))(())()
()( )( )( )()
() ( ) ()
()
((()())()(()(())()))
( )
( )()( )
()() ()( )()
()
İlgili Zorluklar:
- Topografik Dizgiler , bu zorluktaki çıktının tamamlayıcısı olan şeyi üretmenizi ister.
- Kod Açıklaması Formatter , bu zorluktaki fikirlerin geniş bir genellemesi, son zamanlarda PhiNotPi tarafından yayınlandı. (Aslında, PhiNotPi'nin fikrinin orijinal açıklaması bu zorluğa ilham veren şeydi.)
Liderler
Huh, bu oldukça fazla katılım sağladı, bu yüzden işte hem düzenli bir lider tablosu hem de kazananların dile göre genel bir bakışı oluşturmak için bir Stack Snippet.
Cevabınızın göründüğünden emin olmak için, lütfen aşağıdaki Markdown şablonunu kullanarak cevabınızı bir başlık ile başlatın:
# Language Name, N bytes
nerede N
Gönderinizden boyutudur. Puanınızı artırmak varsa, olabilir onları içinden vurarak, başlığa eski hesapları tutmak. Örneğin:
# Ruby, <s>104</s> <s>101</s> 96 bytes