Skip to content

Instantly share code, notes, and snippets.

@abalogun
Created October 3, 2017 20:03
Show Gist options
  • Save abalogun/be09a0f80582f493a9df4a4ae140ba64 to your computer and use it in GitHub Desktop.
Save abalogun/be09a0f80582f493a9df4a4ae140ba64 to your computer and use it in GitHub Desktop.
findTheDifference, longestPalindrome, convertBST
function charIncrement(item, obj) {
item = item.split('');
for (let i = 0; i < item.length; i++) {
if (!obj[item[i]]) {
obj[item[i]] = 1;
} else {
obj[item[i]]++;
}
}
return obj;
}
function findTheDifference (s, t) {
t = t.split('');
let obj = {};
charIncrement(s, obj);
for (let i = 0; i < t.length; i++) {
if (!obj[t[i]]) {
return t[i];
} else {
obj[t[i]]--;
}
}
}
var longestPalindrome = function(s) {
var obj = {};
var result = 0;
var singleChar = 0;
charIncrement(s, obj);
for (var prop in obj) {
var even = obj[prop] % 2;
if (even) {
result += obj[prop] - 1;
singleChar = 1;
} else {
result += obj[prop];
}
}
return result + singleChar;
};
var convertBST = function(root) {
var sum = 0;
function nodeTrek(node) {
if (!node) {
return null;
}
nodeTrek(node.right);
node.val += sum;
sum = node.val;
nodeTrek(node.left);
return node;
}
return nodeTrek(root);
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment