Skip to content

Instantly share code, notes, and snippets.

View codecakes's full-sized avatar
💭
I may be slow to respond.

codecakes codecakes

💭
I may be slow to respond.
View GitHub Profile
@codecakes
codecakes / no_oops.py
Last active December 9, 2020 14:13
OOPS..I did it again
def executor(driver_out):
return f"this is %s" %driver_out
def connector(driver):
return executor(driver())
def blaster_driver():
return "very important blasting info"
def contractor_driver():
@codecakes
codecakes / lca_binary.py
Created November 24, 2020 12:51
Binary Search Tree : Lowest Common Ancestor
from typing import Union
def lca(root: Node, v1: int, v2: int) -> Union[None, Node]:
if not root: return None
res = None
if root.info == v1 or root.info == v2:
res = root
left_res = lca(root.left, v1, v2)
if left_res and res: return res
right_res = lca(root.right, v1, v2)
@codecakes
codecakes / stack_sort.ex
Last active October 29, 2020 14:42
Stack sort using elixir
defmodule StackSort do
@moduledoc """
Documentation for StackSort.
Recursively pops and compares all values with top
of the stack value and pushes it else keeps
popping out until invariant satisfied.
You will find only comments in docstrings.
I(t's a no brainer.
from Stack import MyStack
class MinStack(MyStack):
def __init__(self):
super().__init__()
self.__min = None
self.__last_min_stack = MyStack()
def push(self, value):
if self.__last_min_stack.is_empty():
@codecakes
codecakes / greatest_right_number.py
Created October 28, 2020 15:17
Next Greater Element Using a Stack
from Stack import MyStack
def next_greater_element(lst):
# Write your code here
s = MyStack()
ln = len(lst)
for idx in range(ln-1, -1, -1):
num = lst[idx]
while not s.is_empty() and s.top() <= num:
s.pop()
@codecakes
codecakes / post_suffix_eval.py
Created October 27, 2020 13:20
Evaluate the numerical expression written in post suffix form;
from Stack import MyStack
import operator
OPERATORS = {
'*': operator.mul,
'/': operator.ifloordiv,
'+': operator.add,
'-': operator.sub,
}
@codecakes
codecakes / stack_sort.py
Created October 8, 2020 16:32
Sort Stack in ascdending order as more stacks increase by value, with Lowest value at top
"""Lowest value at top, highest on top."""
from Stack import MyStack
def sort_stack(stack):
if not stack.is_empty():
top_val = stack.pop()
sort_stack(stack)
_insert(stack, top_val)
@codecakes
codecakes / reverse_first_n_queue.py
Created October 8, 2020 12:12
Reversing First k Elements in Queue
from Queue import MyQueue
from Stack import MyStack
def reverseK(queue: MyQueue, k: int):
rem_size = queue.size() - k
if rem_size < 0 or k < 1:
return None
stack = MyStack()
for _ in range(k):
@codecakes
codecakes / Dockerfile
Created September 25, 2020 11:13 — forked from remarkablemark/Dockerfile
Install node and npm with nvm using Docker.
# set the base image to Debian
# https://hub.docker.com/_/debian/
FROM debian:latest
# replace shell with bash so we can source files
RUN rm /bin/sh && ln -s /bin/bash /bin/sh
# update the repository sources list
# and install dependencies
RUN apt-get update \
@codecakes
codecakes / max_min_zigzag_array.py
Created September 24, 2020 11:30
Zigzag max min of sorted array including negative numbers
def max_min_negative(lst, n, new_min, new_max):
res = []
for i in range(n//2):
min_idx = i
max_idx = n-i-1
res += [lst[max_idx], lst[min_idx]]
if n%2 == 1:
res[n-1] = lst[n//2]
return res