Skip to content

Instantly share code, notes, and snippets.

@anushshukla
Last active April 17, 2022 20:04
Show Gist options
  • Select an option

  • Save anushshukla/ec4f1b97624b25dc336562834e27be82 to your computer and use it in GitHub Desktop.

Select an option

Save anushshukla/ec4f1b97624b25dc336562834e27be82 to your computer and use it in GitHub Desktop.
Solutions to Leet Code Problems
function isPalindrome(num: number): boolean {
let reversedNum = 0;
let x = num;
while (x > 0) {
reversedNum = reversedNum * 10 + x % 10;
x = x / 10 >> 0; // >> removes decimal
}
return reversedNum === num;
};
const romanNumberMap = {
'I': 1,
'V': 5,
'X': 10,
'L': 50,
'C': 100,
'D': 500,
'M': 1000
}
const isExceptionalRoman = (currentLetter: string, nextLetter: string): boolean => {
return currentLetter === 'I' && ['V', 'X'].includes(nextLetter)
|| currentLetter === 'X' && ['C', 'L'].includes(nextLetter)
|| currentLetter === 'C' && ['M', 'D'].includes(nextLetter)
}
function romanToInt(s: string): number {
let output = 0;
let i = 0;
while (i < s.length) {
const nextLetter = s[i + 1];
const currentLetter = s[i];
if (isExceptionalRoman(currentLetter, nextLetter)) {
output += romanNumberMap[nextLetter] - romanNumberMap[currentLetter];
i += 2;
} else {
output += romanNumberMap[currentLetter];
i++;
}
}
return output;
};
function twoSum(nums: number[], target: number): number[] {
const numbersHashMap = {} as Record<number, number>;
for (let i = 0; i < nums.length; i++) {
const num = nums[i];
const diff = target - num;
if (diff in numbersHashMap) {
return [numbersHashMap[diff], i];
}
numbersHashMap[num] = i;
}
return [];
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment