1 条题解
-
0
题解
思路
从左到右扫描字符串,用栈记录尚未决定如何删除的结构:状态 表示一个可用的
A,状态 表示一个已经配成的AB。做法
读到
A时压入 ;读到B时,弹掉栈顶连续的状态 ,再尝试找到一个状态 ,找到后将它替换为状态 ,否则这个B永远无法删除,答案加一;读到C时,弹掉栈顶连续的状态 ,再尝试找到状态 ,找到便连同当前C一起消去,否则这个C永远无法删除,答案加一。栈中的状态都可以在之后单独删除或与后续字符配合,不会直接贡献最终长度。一个无法匹配的
B或C会把问题分隔成互不影响的两段,因此立即计入答案是最优的。复杂度
每个状态至多入栈、出栈各一次,单组复杂度为 ,所有测试数据的总复杂度为 ,空间复杂度为 。
- 1
信息
- ID
- 1615
- 时间
- 2000ms
- 内存
- 1024MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者