From c5cd383a16a29052a5729080bb2ba64e57b1d085 Mon Sep 17 00:00:00 2001 From: Ana Musib Date: Sat, 4 Jul 2020 14:15:13 +0530 Subject: [PATCH] Update _225.java --- .../java/com/fishercoder/solutions/_225.java | 96 ++++++++++++------- 1 file changed, 63 insertions(+), 33 deletions(-) diff --git a/src/main/java/com/fishercoder/solutions/_225.java b/src/main/java/com/fishercoder/solutions/_225.java index 17c18f1bc9..29057d1bf0 100644 --- a/src/main/java/com/fishercoder/solutions/_225.java +++ b/src/main/java/com/fishercoder/solutions/_225.java @@ -1,37 +1,67 @@ -package com.fishercoder.solutions; - import java.util.LinkedList; import java.util.Queue; -public class _225 { - - public static class Solution1 { - class MyStack { - - Queue q = new LinkedList(); - - // Push element x onto stack. - public void push(int x) { - q.offer(x); - for (int i = 1; i < q.size(); i++) { - q.offer(q.remove()); - } - } - - // Removes the element on top of the stack. - public void pop() { - q.poll(); - } - - // Get the top element. - public int top() { - return q.peek(); - } - - // Return whether the stack is empty. - public boolean empty() { - return q.isEmpty(); - } - } - } +public class MyStack { + public Queue queue1; + public Queue queue2; + public int flag; + public int size; + public MyStack() { + queue1=new LinkedList(); + queue2=new LinkedList(); + flag=1; + size=0; + } + + public void push(int x) { + if(flag==1){ + queue1.offer(x); + }else{ + queue2.offer(x); + } + size++; + } + + public int pop() { + int value; + if(flag==1){ + while(queue1.size()>1){ + queue2.offer(queue1.poll()); + } + value=queue1.poll(); + flag=2; + }else{ + while(queue2.size()>1){ + queue1.offer(queue2.poll()); + } + value=queue2.poll(); + flag=1; + } + size--; + return value; + } + + public int top() { + if(flag==1){ + while(queue1.size()>1){ + queue2.offer(queue1.poll()); + } + int value=queue1.poll(); + queue2.offer(value); + flag=2; + return value; + }else{ + while(queue2.size()>1){ + queue1.offer(queue2.poll()); + } + int value=queue2.poll(); + queue1.offer(value); + flag=1; + return value; + } + } + + public boolean empty() { + return size==0?true:false; + } }