题目要求我们在最小的命令次数内让所有男生排列到一起,所有女生排列到一起。我们可以用贪心的思想来做这道题。
首先,我们设置两个指针,一个指向第一个男生,一个指向最后一个女生。然后从两头开始往中间逼近,如果当前男生在女生之后,就把他们交换位置,否则就继续往中间逼近。
由于是两个指针从两头往中间逼近,所以男生和女生的相对位置不会发生改变,因此可以保证最后的答案是最小的。
代码如下:
int main() {
int N, cnt = 0;
cin >> N;
for (int i = 1; i <= N; i++) {
char c;
cin >> c;