Skip to content

Instantly share code, notes, and snippets.

View motss's full-sized avatar
🥑
Life is like a prototype, just like JavaScript. So, keep betting on JavaScript!

The web walker motss

🥑
Life is like a prototype, just like JavaScript. So, keep betting on JavaScript!
View GitHub Profile
@motss
motss / expression-parser-multi-line.js
Last active October 19, 2023 11:50
Expression parser
// a = 1; b = a - 1; b = b - 100; b * a - 100
// split('; ');
// a=1
// b=a-1
// b=b-100
// b*a-100
// a=1
// a 1 =
@motss
motss / get-bundlejs-badge-url.js
Last active April 27, 2023 17:51
Generate custom badge URL using shields.io and deno.bundlejs.com
function tryParseUrl(url) {
try {
const u = new URL(url);
return u;
} catch (error) {
console.error(error);
return '';
}
}
@motss
motss / switch-to-zsh-in-bash.md
Last active August 6, 2021 13:49
Switch to ZSH Shell in Bash
@motss
motss / find-sum-of-2-smallest-numbers.js
Last active October 22, 2020 05:31
Find the sum of 2 smallest numbers
function findSmallestSum(arr) {
const len = arr.length;
if (!len) return 0;
if (len === 1) return arr[0];
if (len === 2) return arr[0] + arr[1];
// f - first, s - second
let [f, s] = arr;
let sum = f + s;
@motss
motss / vscode-ff-custom-settings.json
Created November 19, 2019 03:22
VSCode Firefox Quantum Theme custom settings.json
{
"workbench.colorCustomizations": {
"editor.selectionBackground": "#2179775c",
"editor.background": "#0a0a0a"
},
"workbench.colorTheme": "Firefox Quantum Dark"
}
@motss
motss / create-social-media-share-button-by-customizable-link.js
Created September 11, 2019 04:19
Create social media share button by customizable link
@motss
motss / alternating-characters.js
Created September 3, 2019 05:58
Alternating characters
// Time complexity: O(n) where n is the number of characters.
// Space complexity: O(1) for a few variables.
function alternatingCharacters(x) {
const len = x.length;
if (len < 2) return 0;
let lastChar = x[0];
let count = 0;
let countA = lastChar === 'a' ? 1 : 0;
@motss
motss / pascals-triangle-with-n-level.js
Created August 30, 2019 10:01
Pascal's triangle with n level
// Time complexity: O(n ^ 2) where is the number of levels and
// another n is for the number of elements in each level.
// Space complexity: O(2n + 1) to hold all elements, which is linear space.
function pascalTriangle(level) {
if (level === 0) return [];
if (level === 1) return [1];
if (level === 2) return [1, 1];
const d = Array.from(Array(level), () => []);
@motss
motss / min-steps-to-one.js
Last active August 30, 2019 05:50
Moar dynamic programming
// Given an integer n, find the minimum number of steps
// to reach integer 1.
// At each step, you can:
// * n - 1
// * n / 2, if it is divisble by 2
// * n / 3, if it is divisble by 3
// n = 0: 0 // base case 0.
// n = 1: 0 // base case 1.
// n = 2: 1 // base case 2.
@motss
motss / insertion-sort.js
Last active August 29, 2019 06:21
Sorting
// i
// j
// 4 2 1 3 6 0
// i
// j
// 4 2 1 3 6 0
// 2 4 1 3 6 0 # 2 < 4
// i