软硬车厢交替排列
设车辆厂生产了硬座车厢和软座车厢共n节(混合在一起),要求使用队列的基本操作,编程实现所有硬座车厢和所有软座车厢交替排列。例如硬座车厢用H来表示,软座车厢用S来表示,从键盘上输入8节车厢代号为SHHSSHSS ,输出为HSHSHSSS。若从键盘输入8节车厢代号为SHHSHHSH ,输出为HSHSHSHH。
输入格式:
第一行输入硬座和软座车厢共有的节数,2<=节数<=10; 第二行按节数输入车厢代号。
输出格式:
若车厢节数超出合法范围,输出“ERROR”,否则输出H和S车厢交替排列结果,注意输出结果以H开头。
输入样例:
8
SHHSSHSS
输出样例:
HSHSHSSS
代码如下:
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int a = input.nextInt();
input.nextLine();
Queue<Character> Squeue = new LinkedList<>();
Queue<Character> Hqueue = new LinkedList<>();
char[] c = input.nextLine().trim().toCharArray();
if (a < 2 || a > 10 || c.length != a)
System.out.print("ERROR");
else {
for (int i = 0; i < a; i++) {
if (c[i] == 'S')
Squeue.add('S');
if (c[i] == 'H')
Hqueue.add('H');
}
while (!Squeue.isEmpty() || !Hqueue.isEmpty()) {
if (!Hqueue.isEmpty())
System.out.print(Hqueue.poll());
if (!Squeue.isEmpty())
System.out.print(Squeue.poll());
}
}
}
}