设车辆厂生产了硬座车厢和软座车厢共n节(混合在一起),要求使用队列的基本操作,编程实现所有硬座车厢和所有软座车厢交替排列。例如硬座车厢用H来表示,软座车厢用S来表示,从键盘上输入8节车厢代号为SHHSSHSS ,输出为HSHSHSSS。若从键盘输入8节车厢代号为SHHSHHSH ,输出为HSHSHSHH。
输入格式:
第一行输入硬座和软座车厢共有的节数,2<=节数<=10;
第二行按节数输入车厢代号。
输出格式:
若车厢节数超出合法范围,输出“ERROR”,否则输出H和S车厢交替排列结果,注意输出结果以H开头。
输入样例:
8
SHHSSHSS
输出样例:
HSHSHSSS
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
string s;
cin>>n>>s;
if(n<2||n>10){//如果输入的n节车厢不合法直接ERROR
cout<<"ERROR";
}else{
int ls=0;//统计软座的个数
int lh=0;//统计硬座的个数
for(int i=0;i<s.size();i++){
if(s[i]=='S'){
ls++;
}else{
lh++;
}
}
while(ls>0||lh>0){
if(lh>0){
cout<<"H";
lh--;
}
if(ls>0){
cout<<"S";
ls--;
}
}
}
return 0;
}