diff --git a/lectures/21_hash_tables_II/README.md b/lectures/21_hash_tables_II/README.md index d0c16ad..a21fdf0 100644 --- a/lectures/21_hash_tables_II/README.md +++ b/lectures/21_hash_tables_II/README.md @@ -164,3 +164,5 @@ but requires more work to get right. - [Leetcode problem 1451: Rearrange Words in a Sentence](https://leetcode.com/problems/rearrange-words-in-a-sentence/). Solution: [p1451_rearrange_words_in_a_sentence.cpp](../../leetcode/p1451_rearrange_words_in_a_sentence.cpp). - [Leetcode problem 508: Most Frequent Subtree Sum](https://leetcode.com/problems/most-frequent-subtree-sum/). Solution: [p508_most_frequent_subtree_sum.cpp](../../leetcode/p508_most_frequent_subtree_sum.cpp). +- [Leetcode problem 225: Implement Stack using Queues](https://leetcode.com/problems/implement-stack-using-queues/). Solution: [p225_stack_using_queues.cpp](../../leetcode/p225_stack_using_queues.cpp). +- [Leetcode problem 232: Implement Queue using Stacks](https://leetcode.com/problems/implement-queue-using-stacks/). Solution: [p232_queue_using_stacks.cpp](../../leetcode/p232_queue_using_stacks.cpp). diff --git a/leetcode/p225_stack_using_queues.cpp b/leetcode/p225_stack_using_queues.cpp new file mode 100644 index 0000000..bfd2913 --- /dev/null +++ b/leetcode/p225_stack_using_queues.cpp @@ -0,0 +1,40 @@ +class MyStack { +public: + MyStack() { + + } + + void push(int x) { + que.push(x); + int size = que.size(); + for(int i=0;i que; +}; + +/** + * Your MyStack object will be instantiated and called as such: + * MyStack* obj = new MyStack(); + * obj->push(x); + * int param_2 = obj->pop(); + * int param_3 = obj->top(); + * bool param_4 = obj->empty(); + */ diff --git a/leetcode/p232_queue_using_stacks.cpp b/leetcode/p232_queue_using_stacks.cpp new file mode 100644 index 0000000..758e257 --- /dev/null +++ b/leetcode/p232_queue_using_stacks.cpp @@ -0,0 +1,52 @@ +// leetcode 232: implementing queues using stacks + +class MyQueue { +public: + MyQueue() { + + } + + // push 1 + // push 2 + // peek + void push(int x) { + int size = stack1.size(); + // move every element in stack1 into stack2 + for(int i=0;i stack1; + std::stack stack2; +}; + +/** + * Your MyQueue object will be instantiated and called as such: + * MyQueue* obj = new MyQueue(); + * obj->push(x); + * int param_2 = obj->pop(); + * int param_3 = obj->peek(); + * bool param_4 = obj->empty(); + */