CF612C.Replace To Make Regular Bracket Sequence
普及/提高-
通过率:0%
时间限制:1.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
You are given string s consists of opening and closing brackets of four kinds <>, {}, [], (). There are two types of brackets: opening and closing. You can replace any bracket by another of the same type. For example, you can replace < by the bracket {, but you can't replace it by ) or >.
The following definition of a regular bracket sequence is well-known, so you can be familiar with it.
Let's define a regular bracket sequence (RBS). Empty string is RBS. Let _s_1 and _s_2 be a RBS then the strings <_s_1>_s_2, {_s_1}_s_2, [_s_1]_s_2, (_s_1)_s_2 are also RBS.
For example the string "[[(){}]<>]" is RBS, but the strings "[)()" and "][()()" are not.
Determine the least number of replaces to make the string s RBS.
给你一个字符串 s,它由四种括号组成:<>、{}、[]、()。括号分为两类:左括号(opening)和右括号(closing)。你可以将任意一个括号替换成同类型的另一个括号。例如,你可以将 < 替换为 {,但不能将其替换为 ) 或 >。
以下是对“正则括号序列”(Regular Bracket Sequence, RBS)的经典定义,你可能已有所了解:
我们定义正则括号序列(RBS)如下:空字符串是 RBS;若 s1 和 s2 均为 RBS,则字符串 <s_1>s_2、{s_1}s_2、[s_1]s_2、(s_1)s_2 也均为 RBS。
例如,字符串 "[[(){}]<>" 是 RBS,但字符串 "[)()" 和 "][()()" 不是 RBS。
请确定使字符串 s 成为 RBS 所需的最少替换次数。
输入格式
The only line contains a non empty string s, consisting of only opening and closing brackets of four kinds. The length of s does not exceed 106.
仅有一行,包含一个非空字符串 s,该字符串仅由四种类型的括号(开括号和闭括号)组成。字符串 s 的长度不超过 106。
输出格式
If it's impossible to get RBS from s print Impossible.
Otherwise print the least number of replaces needed to get RBS from s.
如果无法从字符串 s 得到合法括号序列(RBS),则输出 Impossible。
否则,输出将 s 变为合法括号序列(RBS)所需的最少替换次数。
输入输出样例
输入#1
[<}){}输出#1
2
输入#2
{()}[]输出#2
0
输入#3
]]
输出#3
Impossible
输入解题思路,AI测评打分。不知道怎么写?