Skip to content

Instantly share code, notes, and snippets.

var getCurrentRow = function(board, row, col) {
return board[row];
};
var getCurrentCol = function(board, row, col) {
var flatCol = [];
board.forEach(function(row) {
flatCol.push(row[col]);
return row;
});
var sortedIndex = function (array, value) {
var low = 0,
high = array.length;
while (low < high) {
var mid = (low + high) >>> 1;
if (array[mid] < value) low = mid + 1;
else high = mid;
}
return low;
};
function Person() {
if(typeof Person.instance === 'object')
return Person.instance;
Person.instance = this;
return this;
}
const countSubstringOccurrances = function(string, query) {
let count = 0;
while(string.includes(query)) {
count++;
let index = string.indexOf(query);
string = string.slice(-(string.length-1-string.indexOf(query)));
}
return count;
};
function diagonal(matrix) {
let row = matrix.length - 1;
let col = matrix[row] ? matrix[row].length - 1 : null;
let matrixDiagonal = [matrix[row][col]];
let count = 0;
while(row !== 0 || col !== 0) {
if(!matrix[row+1] || !matrix[row+1][col-1]) {
row -= count;
col += count;
count = 0;
const assert = function (condition, message) {
console.assert.apply(console, arguments);
typeof message === 'string' && condition ?
console.log('✔ ' + message) :
console.log('✖ ' + message);
};
const test = () => {
//assert(condition, message); example:
//assert(2 > 0, 'Two should be greater than zero!');
};
String.prototype.hashCode = function(max){
var hash = 0;
if (!this.length) return hash;
for (i = 0; i < this.length; i++) {
char = this.charCodeAt(i);
hash = ((hash<<5)-hash)+char;
hash = hash & hash; // Convert to 32bit integer
}
return Math.abs(max?hash%max:hash);
};
const hasLessThanTwoEdits = (string1, string2) => {
if(string1.length - string2.length > 1) {
return false;
}
let changes = 0;
(string1.length >= string2.length ? string1 : string2).split('').forEach((char, i) => { string1[i] !== string2[i] ? changes++ : null });
return changes < 2;
};
const isPalindrome = (string1, string2) => {
if(string1.length !== string2.length) {
return false;
}
let stringChars = string1.split('').reduce((acc, char) => {
acc[char] ? acc[char]++ : acc[char] = 1;
return acc;
}, {});
let string2chars = string2.split('').reduce((acc, char) => {
acc[char] ? acc[char]++ : acc[char] = 1;
const urlify = (string) => {
return string.split('').reduce((acc, char, i, array) => {
if(char === ' ') {
return acc += array[i+1] === ' ' || !array[i+1] ? '' : '%20';
} else {
return acc += char;
}
}, '');
};