【栈/CF534B】Game with string
http://codeforces.com/contest/1104/problem/B
题意:
给定一串小写字母序列,每次取连着的两个相同字母,直到无法取为止
用栈来做。
由于必须取连着的两个,所以依次进栈,遇到和栈顶相同的就弹出,同时把取的次数+1
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e5+233;
char ss[maxn];
stack<int> prs;
int cond=0;
int main()
{
scanf("%s",ss);
int len=strlen(ss);
prs.push(ss[0]);
for(int i=1;i<len;i++)
{
if(!prs.empty()&&prs.top()==ss[i])
{
prs.pop();
cond++;
}
else
{
prs.push(ss[i]);
}
}
printf("%s",(cond%2==1)?"Yes":"No");
}
发表评论