思路:将分成两类,一是S1和S2可以配对,二是S1和S2无法配对(S1和S2分别对应的第一个字符和第二个字符),猜想左边一定有最优解即可。
#include<iostream>
using namespace std;
int main()
{
string a;
cin>>a;
int res=0;
for(int i=0;i+1<a.size();i++)//因为是前后比较,所以在最后一个的前一个就停止循环
{
char x=a[i],y=a[i+1];
if(x==y||x=='?'||y=='?')
{
res++;
i++;
}
}
cout<<res<<endl;
return 0;
}