例题5.5括号匹配问题
/*
stack的用途:括号匹配问题
string answer(s.size(),' ');//字符串的一种定义方式 //存放要输出的字符串
只入栈(的序号
遇到(就将其序号存入stack,
遇到 )就检验能否匹配,
如果能匹配 ( 出栈,若为空则改变answer对应)序号的字符为?
最后将栈中剩下的全部( 在answer中根据对应序号改为 $
*/
#include
#include
using 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]='$';
}
cout<cout<
return 0;
}
stack的用途:括号匹配问题
string answer(s.size(),' ');//字符串的一种定义方式 //存放要输出的字符串
只入栈(的序号
遇到(就将其序号存入stack,
遇到 )就检验能否匹配,
如果能匹配 ( 出栈,若为空则改变answer对应)序号的字符为?
最后将栈中剩下的全部( 在answer中根据对应序号改为 $
*/
#include
#include
using namespace std;
int main()
{
string s;
cin>>s;
string answer(s.size(),' ');//字符串的一种定义方式
stack
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]='$';
}
cout<
return 0;
}
全部评论
相关推荐
投递XMind等公司10个岗位 >
点赞 评论 收藏
分享
11-15 18:12
北京航空航天大学 算法工程师 点赞 评论 收藏
分享