思路:
既然队列里的男生不能主动调换位置,那我们何尝不只考虑女生呢?
题意中说女生只能与前一个男生交换,那么就让她一直换到第一个男生的最前面不就好了?
大模拟水题
代码:
#include<bits/stdc++.h>
using namespace std;
string s;
int main(){
cin>>s;//输入
int ans=0,men=0,len=s.size();//ans是需要移动的步数,men是当前女生前面的男生人数,len是此队列的长度
for(int i=0;i<len;i++){//枚举每个人的操作
if(s[i]=='M')men++;//男生:计数器+1
if(s[i]=='F'&&men>0)ans=max(ans+1,men);//女生:移动
}
printf("%d\n",ans);//输出移动步数
return 0;//完美结束
}