题目大意:
将多个白色石头(W)和黑色石头(B)围成一个圈。可以对它们进行2种操作
①选择一段连续的石头,如果这段石头中白色石头的个数恰好比黑色石头个数多一个,那么就可以将这段石头用一个白色石头代替
②选择一段连续的石头,如果这段石头中黑色石头的个数恰好比白色石头个数多一个,那么就可以将这段石头用一个黑色石头代替
问最后是否能只剩下一个黑色石头和一个白色石头,可以则输出1,否则输出0。
题解:
一上来也没多想就开始在写模拟,结果WA了一发,后来想了想,W和B和个数是与顺序无关的,只需要统计一下W和B的个数,只要个数相等,最后就能只剩一黑一白,否则就不行
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
string s;
cin>>s;
int l=s.length();
int w=0,b=0;
for(int i=0;i<l;++i)
if(s[i]=='W')
w++;
else b++;
if(w==b)
puts("1");
else puts("0");
return 0;
}