题解 | #由两个栈组成的队列#
由两个栈组成的队列
http://www.nowcoder.com/practice/6bc058b32ee54a5fa18c62f29bae9863
import java.util.*;
public class Main{
public static void dfs(int n,ArrayList<String> s,ArrayList<Integer> stack){
Deque<Integer> queue = new LinkedList<>();
int i = 0;
int j = 0;
while(i < n){
if(s.get(i).equals("add")){
queue.addLast(stack.get(j));
j++;
i++;
continue;
}else if(s.get(i).equals("poll")){
queue.removeFirst();
i++;
continue;
}else{
System.out.println(queue.peekFirst());
i++;
}
}
}
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
ArrayList<String> list = new ArrayList<>();
ArrayList<Integer> ans = new ArrayList<>();
int i = 0;
while(i < n){
String s = sc.next();
list.add(s);
if(s.equals("add")){
int a = sc.nextInt();
ans.add(a);
}
i++;
}
dfs(n,list,ans);
}
}
public class Main{
public static void dfs(int n,ArrayList<String> s,ArrayList<Integer> stack){
Deque<Integer> queue = new LinkedList<>();
int i = 0;
int j = 0;
while(i < n){
if(s.get(i).equals("add")){
queue.addLast(stack.get(j));
j++;
i++;
continue;
}else if(s.get(i).equals("poll")){
queue.removeFirst();
i++;
continue;
}else{
System.out.println(queue.peekFirst());
i++;
}
}
}
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
ArrayList<String> list = new ArrayList<>();
ArrayList<Integer> ans = new ArrayList<>();
int i = 0;
while(i < n){
String s = sc.next();
list.add(s);
if(s.equals("add")){
int a = sc.nextInt();
ans.add(a);
}
i++;
}
dfs(n,list,ans);
}
}