题目描述
众所周知,小豪是个学习很刻苦的同学,这主要得益于小豪有个学霸级的室友小轩,小轩不仅是小豪的室友,更是小豪的班长,有一天小轩和小豪在讨论量子力学和复变函数的相关知识,小轩突然发现自己书架上的n本书只有黑色和白色两种颜色,并且排列在一行上,他想把这两种颜色的书交错排列在一排。他有两种方法可以操作:
1.对书架上的任意两本书进行调换位置
2.从小豪那里任取一本黑色或白色的书来替换书架上的任意一本书。
问小轩至少需要多少次操作,可以让书架上的书颜色交错。
(注意:小轩非常有钱,所以他的书架可以无限长。小豪非常爱学习,所以他有无数本黑色和白色的书)
输入
第一行一个整数n,表示小轩书架上的书个数。(0<=n<=1e5)
第二行一个字符串s,表示小轩每本书的颜色。
字符'w'代表白色,'b'代表黑色 (保证字符串中只有w和b)
输出
一个数字,表示小轩最少的操作次数。
样例输入 Copy
4 wbbw
样例输出 Copy
1
方便回顾~侵删
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
char s[100010];
int main()
{
int n,len;
cin>>n>>s;
int f1,f2,sum1,sum2;
f1=f2=sum1=sum2=0;
len=strlen(s);
for(int i=0;i<len;i++)
{
if(s[i]=='w')
{
if(i&1)f1++;
else f2++;
}
else
{
if(i&1)sum1++;
else sum2++;
}
}
int ans=min(max(f1,sum2),max(sum1,f2));
cout<<ans<<endl;
return 0;
}