/*stack的用途:括号匹配问题 string answer(s.size(),' ');//字符串的一种定义方式 //存放要输出的字符串只入栈(的序号 遇到(就将其序号存入stack,遇到 )就检验能否匹配,如果能匹配 ( 出栈,若为空则改变answer对应)序号的字符为?最后将栈中剩下的全部( 在answer中根据对应序号改为 $ */#include#includeusing namespace std;int main(){string s;cin>>s;string answer(s.size(),' ');//字符串的一种定义方式 stack pp;for(int i=0;i{if(s[i]=='(')pp.push(i);else if(s[i]==')'){if(!pp.empty())pp.pop();else{answer[i]='?';}} }while(!pp.empty()){int x=pp.top();pp.pop();answer[x]='$';}coutcoutreturn 0; }