文章
17
粉丝
166
获赞
6
访问
143.2k
#include <bits/stdc++.h>
using namespace std;
string s;
typedef pair<char, int> PCI;
int main()
{
while(cin >> s)
{
//注意stack和bool要清零
stack<PCI> st;
bool num[110] = {false};
for(int i = 0; i < s.size() ; i++)
{
if(isalpha(s[i])) continue;
if(st.empty()) st.push(make_pair(s[i], i));
else
{
auto t = st.top();
if(t.first == '(' && s[i] == ')')
st.pop();
else st.push(make_pair(s[i], i));
}
}
while(!st.empty())
{
//存储没有匹配上的下标
num[st.top().second] = true;
st.pop();
}
cout << s << endl;
for(int i = 0; i < s.size(); i++)
{
if(num[i])
{
if(s[i] == '(') cout << '$';
else if(s[i] == ')') cout << '?';
}
else cout << " ";
}
cout << endl;
}
return 0;
}
登录后发布评论
暂无评论,来抢沙发