会员专享
请先
登录,登录后可使用今日免费解锁;
开通会员后可解锁完整内容。
解题思路
字符串保证是合法括号序列,每个 ) 一定能与左侧最近的尚未匹配的 ( 配成一对。用栈从左到右扫描即可得到全部匹配对。
- 遇到
( 时,把当前下标压入栈,表示一段舱刚开启、等待闭合。
- 遇到
) 时,弹出栈顶下标 L(0-based),当前下标为 R。这对桩标的内部长度是 R−L−1,也就是两端之间夹着的字符个数。
- 若 (R−L−1)modm=0,则计入答案。特别地,相邻的
() 内部长度为 0,0 能被任意正整数整除,因此一定计数。
- 因为序列合法,扫描结束时栈为空,且不会在空栈时遇到
)。