D、智乃的01串打乱
签到题,找到第一个0和第一个1的位置直接交换即可。
时间复杂度,空间复杂度。
#include<bits/stdc++.h>
using namespace std;
const int MAXN=100005;
char s[MAXN];
int n;
char& f(char c)
{
for (int i = 0; i < n; ++i)
{
if (s[i] == c)return s[i];
}
assert(0);
return s[0];
}
int main()
{
scanf("%d", &n);
scanf("%s", s);
assert(strlen(s)==n);
swap(f('0'), f('1'));
printf("%s\n", s);
return 0;
}