将line中的字符依次入栈,然后输出栈中元素个数与栈顶元素。
输入一个字符x(待删除字符)。然后将栈中元素依次出栈并输出,出栈时将不等于x的字符依次入队列,以空格分隔。
输出队列元素个数,队头与队尾,以空格分隔。
最后输出队列中所有元素。
输入格式:
输入一个个字符串 输入一个字符x(待删除字符)
输出格式:栈中元素个数 栈顶元素
栈中符合条件的元素(以空格分隔)
队列中元素个数 队头元素 队尾元素
队列中所有元素(以空格分隔)
ThisIsATest s输出样例:
11 t tseTAsIsihT 8 t T teTAIihT
一、程序设计思路 **具体思路就是建栈和队列,把字符串依次入栈,在出栈时通过遍历栈中的元素,把与不同于题目要求的元素进队列,最后出队时通过遍历队头来输出队中的每一个元素。 根据样例可知,将与我们输入的字符x相同的字符筛选出来,并把字符串的重新打印出来。首先将输入的字符串和字符读入程序,把字符串读入栈中,并输入,完成第一个输出。再出栈,用变量保存并与输入的字符比较,如相同则进入队列,用字符串形式保存在变量,最后用数组的形式完成输出。** 二、代码实现
代码如下(示例):
import java.util.ArrayList;
import java.util.linkedList;
import java.util.Queue;
import java.util.Scanner;
import java.util.Stack;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String input = sc.nextLine();//按行读取
String[] split = input.split(" ");//用空格分隔
String str = split[0];
char ch = split[1].charAt(0);
Stack stk = new Stack();//建立Char栈对象
int len = str.length();
for(int i=0;i q = new linkedList<>();//队列
while(stk.size()!=0) {
char tmp =stk.pop();//出栈操作
System.out.print(tmp);
if(tmp!=ch) {
q.add(tmp);}}
System.out.println();
int size = q.size();
String output="";
while(q.size()!=0) {
output+=q.poll();//出队}
System.out.println(size+""+output.charAt(0)+""+output.charAt(output.length()-1));
System.out.print(output);
}
}



