1 条题解

  • 0
    @ 2026-9-9 9:02:39

    题解

    思路

    把 ( 看成 11,) 看成 −1-1,合法括号序列等价于总和为 00 且所有前缀和非负。

    做法

    交换不改变两种括号的数量,因此先用替换使它们各有 NN 个:左括号过多时从右往左改,右括号过多时从左往右改,这会在相同替换次数下尽量抬高前缀和。设调整后的最小前缀和为 mm,交换最左边导致负前缀的 ) 与右侧的 ( 每次能将需要修复的最小值提高 22,所以还需要 ⌈−m/2⌉\lceil -m/2\rceil 次此类修复。

    一次交换也可以用两次替换实现,因而其有效代价为 min⁡(A,2B)\min(A,2B)。

    复杂度

    扫描字符串完成数量调整和最小前缀和统计即可,时间复杂度为 O(N)O(N),额外空间复杂度为 O(1)O(1)。

    • 1

    信息

    ID
    1582
    时间
    2000ms
    内存
    512MiB
    难度
    10
    标签
    递交数
    1
    已通过
    1
    上传者