题目描述
The Dutch flag problem is to rearrange an array of characters R, W,and B (red, white, and blue are the colors of the Dutch national flag) so that all the R’s come first, the W’s come next, and the B’s come last. Design a linear and stable algorithm for this problem.
输入
two lines, the first line is total of numbers characters R,W and B ,and the numbers less than 500005
the second line is random characters R,W and B
输出
a line, all the R’s come first, the W’s come next, and the B’s come last.
样例输入
10
WRRWRWBBRW
样例输出
RRRRWWWWBB
参考程序
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
int r = 0;
int w = 0;
int b = 0;
cin >> n;
char a[n];
for(int i = 0; i< n; i++){
cin >> a[i];
if(a[i] == 'R')
r++;
if(a[i] == 'W')
w++;
if(a[i] == 'B')
b++;
}
for(int i =0; i<r; i++){
cout << "R";
}
for(int i =0; i<w; i++){
cout << "W";
}
for(int i =0; i<b; i++){
cout << "B";
}
cout <<endl;
return 0;
}
注意
该程序仅供学习参考!