Skip to content

Instantly share code, notes, and snippets.

View carefree-ladka's full-sized avatar
🏠
Working from home

Pawan Kumar carefree-ladka

🏠
Working from home
View GitHub Profile
@carefree-ladka
carefree-ladka / doublyLinkedList.js
Last active July 1, 2023 16:03
DoublyLinkedList
class Node {
constructor(value) {
this.value = value;
this.next = null;
this.prev = null;
}
}
class DoublyLinkedList {
constructor() {
@carefree-ladka
carefree-ladka / TicTacToe.js
Created July 31, 2023 11:33
TicTacToe in JS
class TicTacToe {
constructor() {
this.board = Array(3)
.fill(null)
.map(() => Array(3).fill(null));
this.gameOver = false;
this.winner = null;
this.currentPlayer = "X";
this.winningPositions = [
[0, 1, 2],
@carefree-ladka
carefree-ladka / Polyfills.js
Created August 1, 2023 07:03
Bind, Apply, Call, Map, Filter and Reduce Polyfills
Function.prototype.myBind = function (scope, ...args) {
scope.fn = this;
return function () {
return scope.fn(...args);
};
};
Function.prototype.myApply = function (scope, args) {
scope.fn = this;
return scope.fn(...args);
@carefree-ladka
carefree-ladka / Promise.js
Last active September 8, 2023 08:47
Promise Polyfill
/*
Author: Pawan Kumar
Date : 04/28/2023
Location: Bangalore, India
*/
class MyPromise {
constructor(executor) {
let resolved = false;
let rejected = false;
function findRepeatingIndex(string) {
const map = {};
for (let i = 0; i < string.length; i++) {
const char = string[i];
if (!map[char]) {
map[char] = { startingIndex: i };
} else {
map[char].endIndex = i;
}
}
@carefree-ladka
carefree-ladka / Promise.js
Created August 14, 2023 10:02
Promise Polyfill in JavaScript
export default class MyPromise {
constructor(executor) {
let resolved = false;
let rejected = false;
let resolveValue;
let rejectValue;
let resolveCallbacks = [];
let rejectCallbacks = [];
function resolve(value) {
@carefree-ladka
carefree-ladka / HashMap.js
Created August 15, 2023 14:54
Leetcode HashMap Using LinkedList
class Node {
constructor(key, value) {
this.key = key;
this.value = value;
}
}
class LinkedList {
constructor() {
this.head = null;
@carefree-ladka
carefree-ladka / makePalindrome.js
Created September 12, 2023 14:35
Remove or add character to make a string palindrome
function isPalindrome(str) {
let low = 0;
let high = str.length - 1;
while (low < high) {
if (str[low] !== str[high]) return false;
low++;
high--;
}
return true;
}
@carefree-ladka
carefree-ladka / Trie.js
Created October 5, 2023 04:03
Trie Implementation in JavaScript . It also includes Auto-complete.
class TrieNode {
constructor() {
this.children = {};
this.end = false;
}
}
class Trie {
constructor() {
this.root = new TrieNode();
@carefree-ladka
carefree-ladka / graphColoring.js
Created November 28, 2023 11:31
Graph Coloring in JavaScript
class Graph {
constructor() {
this.adjList = new Map();
}
addVertex = (v) => {
if (!this.adjList.has(v)) {
this.adjList.set(v, []);
}
};