Alternative Thinking

Alternative Thinking
规律题,不论怎么翻转都是增加2个(和前边连接加1个,和后面连接又加一个)
思路先把原数的“(0)101010…”个数找出,最后加2

#include 
#include 
#include 
using namespace std;
const int N=1e5+10;
int a[N];
string s;
int n;
int main()
{
	cin>>n>>s;
	for(int i=1;i<=n;++i) a[i]=s[i-1]-'0';
	int ans=1;
	int pre=a[1];
	for(int i=2;i<=n;++i)
	{
		if(a[i]!=pre)
		{
			pre=a[i];
			ans++;
		}
	}
	cout<<min(n,ans+2);
}

你可能感兴趣的:(Alternative Thinking)