|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include <bits/stdc++.h>
- using namespace std;
- struct Node
- {
- char c;
- int pos;
- bool operator <(const Node &o)const
- {
- return pos<o.pos;
- } //位置从大到小
- };
- vector<Node> up,low,ans;
- void solve()
- {
- string s,a;
- cin>>s;
- up.clear();
- low.clear();
- ans.clear();
- for(int i=0;i<s.size();i++)
- {
- if(islower(s[i]))
- {
- if(s[i]=='b')
- {
- if(!low.empty())low.pop_back();
-
- }
- else
- {
- low.push_back(Node{s[i],i});
- }
- }
- else
- {
- if(s[i]=='B')
- {
- if(!up.empty())up.pop_back();
- }
- else
- {
- up.push_back(Node{s[i],i});
- }
- }
- }
- for(int i=0;i<up.size();i++)
- {
- ans.push_back(up[i]);
- }
- for(int i=0;i<low.size();i++)
- {
- ans.push_back(low[i]);
- }
- sort(ans.begin(),ans.end());
- for(int i=0;i<ans.size();i++)
- {
- cout<<ans[i].c;
- }
- cout<<endl;
-
- }
- int main()
- {
- int t;
- cin>>t;
- while(t--)
- {
- solve();
- }
- }
复制代码 |
|