Skip to content

Instantly share code, notes, and snippets.

View ssshukla26's full-sized avatar
💭
Learn Apply Repeat

Sunny Shukla ssshukla26

💭
Learn Apply Repeat
View GitHub Profile
@ssshukla26
ssshukla26 / FromPostOrder.py
Created November 21, 2021 01:05
Build Tree From Preorder and Postorder given Inorder [LeetCode 105/106]
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def buildTree(self, inorder: List[int], postorder: List[int]) -> Optional[TreeNode]:
@ssshukla26
ssshukla26 / ValidIP.py
Created November 14, 2021 23:54
Validate IP Address [LeetCode 468]
import re
class Solution:
def validIPAddress(self, queryIP: str) -> str:
def is_ipv4(ip: str) -> bool:
ip = ip.split(".")
if len(ip) == 4: # must have 4 different parts
@ssshukla26
ssshukla26 / MaxStack.py
Created November 9, 2021 18:54
Max Stack [LeetCode 716]
from sortedcontainers import SortedDict
class Element:
def __init__(self, v):
self.v = v # Current value
self.p = None # Previous pointer
self.n = None # Next Pointer
return
class MaxStack:
@ssshukla26
ssshukla26 / LFUCache.py
Created October 14, 2021 00:29
LFU Cache [LeetCode 460]
# Reference : https://www.youtube.com/watch?v=Jn4mbZVkeik
from collections import OrderedDict
# A class to hold the value and the counter of the key
class KeyNode():
def __init__(self, val, cnt):
self.val = val
self.cnt = cnt
@ssshukla26
ssshukla26 / RegExMemoization.py
Created October 8, 2021 16:34
RegEx Matching Leetcode 10
# Leetcode : https://leetcode.com/problems/regular-expression-matching/
# Reference : https://www.youtube.com/watch?v=HAA8mgxlov8
from functools import cache
class Solution:
def isMatch(self, s: str, p: str) -> bool:
a = len(s)
b = len(p)
@ssshukla26
ssshukla26 / MergeSort.py
Created October 3, 2021 03:43
Basic Merge Sort
from typing import List, Tuple
def merge_sort(arr: List):
# Sort and Merge
def merge(first: Tuple, second: Tuple) -> Tuple:
# Init
a, n = first
b, m = second
@ssshukla26
ssshukla26 / ExpressionTree.py
Last active September 23, 2021 01:35
Design an Expression Tree With Evaluate Function
from typing import List
class TreeNode(object):
def __init__(self, val):
self.val = val
self.left = None
self.right = None
return
@ssshukla26
ssshukla26 / SumBetweenNums.py
Last active September 22, 2021 18:57
Formula to calculate sum between two numbers
# Reference : https://www.quora.com/How-do-you-calculate-the-sum-of-the-numbers-between-x-and-y
# This formula does't depened on which one of a or b is greater
def sumBetweenNums(a,b):
m = abs(a-b+1)
k = a+b
r = (m*k)/2
return r
# OR
@ssshukla26
ssshukla26 / RemoveKMinAmplitude.py
Created September 19, 2021 21:57
Remove K consecutive elements from array, so that amplitude of remaining elements is minimal.
# Reference : https://stackoverflow.com/questions/69236733/remove-n-consecutive-elements-from-array-so-that-amplitude-of-remaining-element/69237657#69237657
# remove K consecutive elements from array, so that amplitude of remaining elements is minimal
from itertools import accumulate as acc
from math import inf
A = [3,5,1,3,9,8]
B = A[::-1]
K = 3
N = len(A)
@ssshukla26
ssshukla26 / EditDistance.py
Created September 18, 2021 18:10
Edit Distance [LeetCode 72]
# Reference : https://www.youtube.com/watch?v=AuYujVj646Q
class Solution:
def minDistance(self, x: str, y: str) -> int:
# Init
n = len(x)
m = len(y)