3
平衡支架
您的目标:给定一串方括号,输出将输入字符串转换为平衡了方括号的字符串所需的最小Damerau-Levenshtein距离。 输入项 输入的字符串将仅包含方括号,并且不包含其他字符。也就是说,它是中任何字符的组合(){}[]<>。您可以将输入作为字符串或字符数组。您不能对输入字符串做任何其他假设;它可能任意长(最大为您的语言支持的最大大小),它可能为空,方括号可能已经平衡,等等。 Damerau-Levenshtein距离 两个字符串之间的Damerau-Levenshtein距离是两个相邻字符的插入,删除,单字符替换和换位(交换)的最小数量。 输出量 输出应该是输入字符串和括号匹配的字符串之间的最小Damerau-Levenshtein距离。输出应为数字,而不是结果平衡的字符串。 如果左括号和右括号的顺序正确且其中没有字符,则将一对括号视为“匹配” () []{} 或者,如果其中的每个子元素也都匹配。 [()()()()] {<[]>} (()()) 子元素也可以嵌套几层深。 [(){<><>[()]}<>()] <[{((()))}]> (感谢@DJMcMayhem的定义) 测试用例 Input Possible Balanced Output Empty Empty 0 [](){}<> [](){}<> 0 [(){}<> [(){}<>] 1 [(]) []() 1 [[[[[[[[ [][][][] 4 (](<>}[>(}>><(>(({}] ()(<>)[(<><>){}] 7 >]{])< []{()} 3 ([)}}>[ (){}<> 4 {<((<<][{{}>[<) <>(<<[]>{}>[]) 5 …