单点时限: 2.0 sec
内存限制: 256 MB
远岛子五月二十号去食堂买夜宵,她发现了令人悲戚的一幕,食堂门口排满了人,而更让人悲戚的是每当有一个人排到队伍的末尾,如果他/她前面是异性,他们就马上牵手走人了。给定一个序列,从前往后排入队伍的学生的性别,女生用 0 表示,男生用 1 表示,远岛子想要知道最终队伍的长度(假设不碰到异性不会有人离开)。
输入格式
第一行为数据的组数 T(T≤100)
每组数据有一行字符串 S,为排队的序列,|S| 为 S 的长度,保证 1≤|S|≤103
输出格式
一行数字,最终队伍的长度。
样例
input
2
10
110
output
0
1
/*
思路:栈保存留下的,遇到不相同就pop,相同就push
*/
#include<iostream>
#include<stack>
using namespace std;
int main() {
int t;
cin>>t;
for(int i = 0; i < t; i++) {
int ans=0;
string s;
cin>>s;
stack<char>p;
for(int j = 0; j < s.size(); j++) {
if(p.empty())
p.push(s[j]);
else {
char c=p.top();
if(c==s[j])
p.push(s[j]);
else {
p.pop();
}
}
}
cout<<p.size()<<endl;
}
return 0;
}