编辑:我试图解决一个问题。以下是问题的链接: http://spoj.pl/problems/BRCKTS
我可以想到两个可能的数据结构来解决问题,一个使用分段树,另一个使用BIT。 我已经使用分段树实现了解决方案。我读过有关BIT但我无法弄清楚如何使用它(我在下面提到过)
我正在尝试检查括号是否在仅包含(
或)
的给定字符串中平衡。
我正在使用BIT(二进制索引树)来解决问题。
我遵循的程序如下:
我正在使用一个大小等于字符串中字符数的数组。
我正在为)
分配-1,为(
分配1到相应的数组元素。
仅当以下两个条件为真时,括号内的字符串才会平衡。
使用BIT检查条件1是微不足道的。 我在检查条件2时遇到问题。
答案 0 :(得分:3)
这是一个关于二进制索引树的非常好的教程:http://www.topcoder.com/tc?module=Static&d1=tutorials&d2=binaryIndexedTrees这里有一个更直接但不太全面的:http://programmersdream.com/data-structure/binary-indexed-tree/