Skip to content

Instantly share code, notes, and snippets.

View lndgalante's full-sized avatar

Leonardo Galante lndgalante

View GitHub Profile
@lndgalante
lndgalante / parser.ts
Last active May 7, 2024 09:56
1031 parser
import { stripHtml } from "string-strip-html";
import { mkConfig, generateCsv, asString } from "export-to-csv";
import { writeFile } from "node:fs";
import { Buffer } from "node:buffer";
// merge all pages (get from...)
const allPages = [
];
// parse data from all pages
@lndgalante
lndgalante / sum-non-repeated.ts
Created April 1, 2024 15:21
Given an array of numbers, add all of the values together but only if the number doesn't repeat a digit.
function hasRepeatedDigits(value: number): boolean {
const stringValue = String(value);
return new Set(stringValue).size !== stringValue.length;
}
function uniqueSum(values: number[]): number {
return values.reduce((accumulator, value) => hasRepeatedDigits(value) ? accumulator : accumulator + value, 0)
}
console.log(uniqueSum([1, 2, 3])) // 6
@lndgalante
lndgalante / max-gap.ts
Last active March 12, 2024 01:21
max gap challenge
/*
Given an integer array arr, return the maximum difference between two successive elements in arr's sorted form. Return 0 if there's 0 or 1 elements.
*/
function maxGap(numbers: number[]): number {
if ([0, 1].includes(numbers.length)) {
return 0;
}
@lndgalante
lndgalante / get-is-email-valid.ts
Created February 28, 2024 18:36
Check if an email is valid or not
function getIsEmailValid(email: string): boolean {
if (!email.includes('@') || !email.includes('.')) {
return false;
}
const parts = email.split('@');
const hasMoreThanOneAtSymbol = parts.length !== 2;
if (hasMoreThanOneAtSymbol) {
return false;
@lndgalante
lndgalante / highest-number.ts
Created February 27, 2024 13:58
Highest Number
/*
Given a number and a digit to remove from that number,
maximize the resulting number after the digit has been removed and print it.
You can choose how you want to handle a digit not existing in the number.
*/
function removeDigit(initialNumber: number, numberToRemove: number): number {
const numbers: number[] = [];
const number = initialNumber.toString();
@lndgalante
lndgalante / 2d-array-reversed.ts
Created January 16, 2024 03:30
Given a 2D array, write a function that flips it vertically or horizontally.
/*
Given a 2D array, write a function that flips it vertically or horizontally.
*/
export function flip(matrix: number[][], direction: "horizontal" | "vertical") {
if (direction === "horizontal") {
return matrix.map((row) => row.toReversed());
}
if (direction === "vertical") {
function minSubs(integers: number[], k: number): number[] {
const sums = [];
for (let i = 0; i < integers.length; i++) {
if (i + k > integers.length) {
break;
}
let innerSum = 0;
const innerArray = [];
@lndgalante
lndgalante / serial-printer.js
Created September 1, 2023 00:57
printer serial
// async helpers
async function requestUsbDevices() {
return navigator.serial.requestDevice({ filters: [] });
}
async function getDevice() {
const [device] = await navigator.serial.getDevices();
return Promise.resolve(device);
}
@lndgalante
lndgalante / printer.js
Last active September 1, 2023 00:10
Printer demo
// async helpers
async function requestUsbDevices() {
return navigator.usb.requestDevice({ filters: [] });
}
async function getDevice() {
const [device] = await navigator.usb.getDevices();
return Promise.resolve(device);
}
/*
Given an integer n, return true if it's a perfect square AND when reversed, is still a perfect square.
*/
function getIsPerfectSquare(n: number): boolean {
return Number.isInteger(Math.sqrt(n));
}
function getReversedNumber(n: number): number {
return Number(String(n).split('').reverse().join(''));