Skip to content

Instantly share code, notes, and snippets.

View dli7077's full-sized avatar

Devin Li dli7077

  • New York
View GitHub Profile
@dli7077
dli7077 / honey-impact-scrape.js
Created August 1, 2023 03:59
Honey Impact Character Page Scraper
const tables = [
...document.getElementsByClassName("genshin_table skill_table"),
];
const imageUrls = tables.map((table) => {
const icon = table.querySelector("img");
return icon.src;
});
const [
@dli7077
dli7077 / merge-sorted.cpp
Created June 6, 2023 17:12
mergeSorted C++
vector<int> mergeSorted(vector<int>& valuesA, vector<int>& valuesB) {
int idxA = 0, idxB = 0;
vector<int> result;
while (idxA < valuesA.size() && idxB < valuesB.size()) {
if (valuesA[idxA] < valuesB[idxB]) {
result.push_back(std::move(valuesA[idxA++]));
} else {
result.push_back(std::move(valuesB[idxB++]));
}
@dli7077
dli7077 / out-of-order.cpp
Created June 6, 2023 17:01
Out of Order C++
int outOfOrder(vector<int>& values) {
vector<int> expected = values;
sort(expected.begin(), expected.end());
int mismatches = 0;
for (int idx = 0; idx < values.size(); idx++) {
mismatches += expected[idx] != values[idx];
}
return mismatches;
@dli7077
dli7077 / is-anagram.cpp
Created June 6, 2023 16:58
isAnagram C++
bool isAnagram(string& wordA, string& wordB) {
vector<int> frequencies(26, 0);
for (char letter : wordA) frequencies[letter - 'a']++;
for (char letter : wordB) frequencies[letter - 'a']--;
for (int difference : frequencies) {
if (difference != 0) return false;
}
return true;
@dli7077
dli7077 / is-palindrome.ts
Created June 6, 2023 16:47
isPalindrome TS
function isPalindrome(word: string): boolean {
let left = 0;
let right = word.length - 1;
while (left < right) {
if (word[left] != word[right]) return false;
left++, right--;
}
return true;
}
@dli7077
dli7077 / is-palindrome.cpp
Created June 6, 2023 16:46
isPalindrome C++
bool isPalindrome(string& word) {
int left = 0, right = word.size() - 1;
while (left < right) {
if (word[left] != word[right]) return false;
left++, right--;
}
return true;
}
@dli7077
dli7077 / is-palindrome.cpp
Last active June 6, 2023 16:46
isPalindrome C++
bool isPalindrome(string& word) {
string copy = word;
reverse(copy.begin(), copy.end());
return word == copy;
}
@dli7077
dli7077 / is-palindrome.ts
Created June 6, 2023 16:42
isPalindrome TS
function isPalindrome(word: string): boolean {
const reversed = Array.from(word).reverse().join("");
return word === reversed;
}
@dli7077
dli7077 / menu-dom-scraper.js
Last active January 16, 2025 09:54
Menu DOM scraper
// Dig into a price table to retrieve the lowest price
function lowestTablePrice(table) {
const priceOptions = table.innerText.split(/\n/);
const prices = priceOptions.map((option) => {
// the actual is price after a \t character
const [_, priceString] = option.split(/\t/);
// parse `$123` to `123`
const price = parseFloat(priceString.slice(1));
return price;
@dli7077
dli7077 / memory_check.cpp
Created October 21, 2022 16:49 — forked from thirdwing/memory_check.cpp
C++ code to print out runtime memory usage
#include <iostream>
#include <fstream>
#include <unistd.h>
void process_mem_usage(double& vm_usage, double& resident_set)
{
vm_usage = 0.0;
resident_set = 0.0;
// the two fields we want