题意:给出一个2×n的矩阵,0表示空位,x表示已经被占用了。如果你想占用一个空位,那么,必须是以这样的形式占用:
XX XX .X X. X. .X XX XX
红色的x表示你占用的位置,即,你占用一个位置,还要额外以上述的形式占用两个位置。问,你最多可以占用多少个位置
思路:当你占用一个位置,那么有4种情况。for循环,然后判断满足上述任意一种情况的ans++。
#include "iostream"
#include "cstring"
using namespace std;
char ch1[105],ch2[105];
int main()
{
int ans=0;
cin>>ch1>>ch2;
int len=strlen(ch1);
for(int i=0;i<len;i++){
if(ch1[i]=='0'&&ch2[i]=='0'&&ch1[i+1]=='0') ch1[i]=ch1[i+1]=ch2[i]='x',ans++;
else if(ch1[i]=='0'&&ch2[i]=='0'&&ch2[i+1]=='0') ch1[i]=ch2[i]=ch2[i+1]='x',ans++;
else if(ch1[i]=='0'&&ch1[i+1]=='0'&&ch2[i+1]=='0') ch1[i]=ch1[i+1]=ch2[i+1]='x',ans++;
else if(ch2[i]=='0'&&ch1[i+1]=='0'&&ch2[i+1]=='0') ch2[i]=ch1[i+1]=ch2[i+1]='x',ans++;
}
cout<<ans<<endl;
}