Hedefiniz: Bir dizi parantez verildiğinde , giriş dizesini parantezlerin dengeli olduğu bir dize haline getirmek için gereken minimum Damerau-Levenshtein Mesafe değerini verin .
Giriş
Giriş dizesi yalnızca parantez içerecek ve başka karakter içermeyecek. Yani, içindeki karakterlerden herhangi birinin bir birleşimidir (){}[]<>
. Girdiyi bir dize veya bir karakter dizisi olarak alabilirsiniz. Giriş dizesi hakkında başka bir varsayımda bulunamazsınız; isteğe bağlı olarak uzun olabilir (diliniz tarafından desteklenen maksimum boyuta kadar), boş olabilir, parantezler dengeli olabilir, vb.
Damerau-Levenshtein Uzaklığı
İki dizi arasındaki Damerau-Levenshtein Uzaklığı, iki bitişik karakterin minimum yerleştirme, silme, tek karakterli yer değiştirme ve yer değiştirmesidir (yer değiştirme).
Çıktı
Çıkış, giriş dizesi ile parantezlerin eşleştirildiği bir dize arasındaki minimum Damerau-Levenshtein Mesafesi olmalıdır. Çıktı , elde edilen dengeli dize değil bir sayı olmalıdır .
Açma ve kapama parantezleri doğru sıradaysa ve içlerinde karakterleri yoksa, bir parantez bir çift parantez olarak kabul edilir.
()
[]{}
Veya içindeki her alt öğe aynı zamanda eşleşirse.
[()()()()]
{<[]>}
(()())
Alt elemanlar ayrıca birkaç kat derinlikte yuvalanabilir.
[(){<><>[()]}<>()]
<[{((()))}]>
(Tanım için @DJMcMayhem'e teşekkürler)
Test Kılıfları
Input Possible Balanced Output
Empty Empty 0
[](){}<> [](){}<> 0
[(){}<> [(){}<>] 1
[(]) []() 1
[[[[[[[[ [][][][] 4
(](<>}[>(}>><(>(({}] ()(<>)[(<><>){}] 7
>]{])< []{()} 3
([)}}>[ (){}<> 4
{<((<<][{{}>[<) <>(<<[]>{}>[]) 5
{><({((})>}}}{(}} {<><({()})>}{}{()} 4
(](<)>}[>(}>>{]<<(]] (<()<><<>()>>[])<()> 9
}})( {}() 2
(Test vakalarının yarısını çözmek için @WheatWizard'a teşekkürler)
Bu kod golf , en az bayt kazanıyor!
Başvurularınız test edilebilir olmalıdır, yani her test durumu için bir saatten fazla bir sonuç vermemelidir.
[<>]
ya []<>
ya<>