#104. 偷袭法则(括号配对)

偷袭法则(括号配对)

题目描述

​ 小 L 喜欢玩 PVP\text{PVP} 游戏括号战争,而且擅长偷袭。 ​ 括号战争是一个双人 PVP\text{PVP} 游戏,而且小 L 喜欢玩玩家 1 。 ​ 具体来说玩家 2 会给出一个仅含有 ()[] 四种符号的字符串。 ​ 而玩家 1 负责操作该字符串为一个合法括号序列后偷袭玩家 2 的基地。 ​ 一次操作定义为在该字符串的任意一个位置增加四种符号对的任意一个。 ​ 合法括号序列定义如下: ​

  • 空串是合法括号序列。

  • 如果 S 是合法的,那么 (S) 是合法的。

  • 如果 S 是合法的,那么 [S] 是合法的。

  • 如果 ST 是合法的,那么 ST 是合法的。(ST 即将 ST 首尾相接)

​ 由于小 L 喜欢偷袭,于是他想尽快的完成括号序列的合法化,这就需要你去计算最小的操作数。 ​

输入格式

​ 输入一行一个非空字符串 S ,仅由四种括号组成。 ​

输出格式

​ 输出一行一个非负整数,表示最少操作几次可以使输入的括号序列合法。 ​

样例

输入#1

((]                                    

输出#1

3                                

输入#2

([)]                            

输出#2

2                                    

数据范围与提示

​ 对于 25% 的数据,1S18 1 ≤ |S| ≤ 18 。 ​ 对于 70% 的数据,1S65 1 ≤ |S| ≤ 65 。 ​ 对于 100% 的数据,1S100 1 ≤ |S| ≤ 100 。 ​