问题 C: [全国青少年软件编程等级考试-三级]-扩号匹配问题

问题 C: [全国青少年软件编程等级考试-三级]-扩号匹配问题

时间限制: 1 Sec  内存限制: 128 MB
提交: 2  解决: 1
[提交] [状态] [讨论版] [命题人:]

题目描述

在某个字符串(长度不超过100)中有左括号、右括号和大小写字母;规定(与常见的算数式子一样)任何一个左括号都从内到外与在它右边且距离最近的右括号匹配。写一个程序,找到无法匹配的左括号和右括号,输出原来字符串,并在下一行标出不能匹配的括号。不能匹配的左括号用"$"标注,不能匹配的右括号用"?"标注.

输入

输入包括多组数据,每组数据一行,包含一个字符串,只包含左右括号和大小写字母,字符串长度不超过100

输出

对每组输出数据,输出两行,
第一行包含原始输入字符,
第二行由"$","?"和空格组成,"$"和"?"表示与之对应的左括号和右括号不能匹配。如果字符串匹配,那么输出一个换行

样例输入 Copy

((ABCD(x)
)(rttyy())sss)(

样例输出 Copy

((ABCD(x)
$$
)(rttyy())sss)(
?            ?$

提示

提示:可以利用下面的代码输入多行字符串
string s;
while(cin>>s){
    //处理s
}