public static void main(String []args) { Scanner in = new Scanner(System.in); String []s = in.nextLine().split(" "); List<String> list = new ArrayList<>(); Stack<String> stack = new Stack<>(); int a=-1; String temp; for(int i=0;i<s.length;i++){ if(s[i].equals("undo")){ stack.push(list.get(a)); list.remove(a); a--; }else if(s[i].equals("redo")){ list.add(stack.pop()); a++; }else{ list.add(s[i]); a++; } } StringBuilder sb = new StringBuilder(); int i; for(i=0;i<list.size()-1;i++){ sb.append(list.get(i)).append(" "); } sb.append(list.get(i)); System.out.println(sb.toString()); } hello 1 2 3 undo undo undo redo redo world. hello 1 2 world. 被第一题弄懵逼了,第二题没时间做了。不知道这样输出对不对 hello 3 2 world.要是输出是这样的话就不用栈写。
点赞 评论

相关推荐

点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务