Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
ef5a1db
longestSting completed
swoleengineer Aug 8, 2017
ecd6dae
Merge branch 'master' of https://github.com/LambdaSchool/CS2-Code-Cha…
swoleengineer Aug 9, 2017
858cd1e
Problem solved but the code is long.
swoleengineer Aug 9, 2017
f749801
Merge branch 'master' of https://github.com/LambdaSchool/CS2-Code-Cha…
swoleengineer Aug 10, 2017
fcdc08f
isUnique done.
swoleengineer Aug 10, 2017
cb4d537
Merge branch 'master' of https://github.com/LambdaSchool/CS2-Code-Cha…
swoleengineer Aug 11, 2017
a0044fa
callBackPractice Done.
swoleengineer Aug 11, 2017
7b10a2b
Merge branch 'master' of https://github.com/LambdaSchool/CS2-Code-Cha…
swoleengineer Aug 14, 2017
f39f0ce
Done with remove duplicates.
swoleengineer Aug 14, 2017
6f61b08
Merge branch 'master' of https://github.com/LambdaSchool/CS2-Code-Cha…
swoleengineer Aug 15, 2017
d2121a2
waterJugs completed.
swoleengineer Aug 15, 2017
e6f39bc
Merge branch 'master' of https://github.com/LambdaSchool/CS2-Code-Cha…
swoleengineer Aug 16, 2017
c300aea
Done with for loop.
swoleengineer Aug 16, 2017
a8f5b95
Merge branch 'master' of https://github.com/LambdaSchool/CS2-Code-Cha…
swoleengineer Aug 17, 2017
b47db70
Merge branch 'master' of https://github.com/LambdaSchool/CS2-Code-Cha…
swoleengineer Aug 21, 2017
a6b654c
Common characters.
swoleengineer Aug 21, 2017
62b8ef8
Merge branch 'master' of https://github.com/LambdaSchool/CS2-Code-Cha…
swoleengineer Aug 22, 2017
7cf26d0
evenOccurences done.
swoleengineer Aug 22, 2017
f216372
Merge branch 'master' of https://github.com/LambdaSchool/CS2-Code-Cha…
swoleengineer Aug 23, 2017
5bfaed2
Merge branch 'master' of https://github.com/LambdaSchool/CS2-Code-Cha…
swoleengineer Aug 24, 2017
52cee28
Done with vowel count.
swoleengineer Aug 24, 2017
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions brainTeasers/waterJugs.md
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
You have a five-quart jug, a three-quart jug, and an unlimited supply of water (but no measuring cups). How would you come up with exactly four quarts of water? Note that the jugs are oddly shaped, such that filling up exactly "half" of the jug would be impossible.

Fill up the five-quart jug to three quarts using the three-quart jug. Fill up the three-qart jug again and use that to fill up the remaining two quarts of the five-quart jug. You now have one quart left in the three-quart jug. Dispose of all of the water in the five-quart jug, pour the one-quart from the three-quart jug into the five-quart jug. Fill up the three-quart jug and pour it into the five-quart jug. Now you have four quarts of water.
33 changes: 31 additions & 2 deletions callBackPractice/callBackPractice.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,30 +20,47 @@

const foods = ['pineapple', 'mango', 'ribeye', 'curry', 'tacos', 'ribeye', 'mango'];

const firstItem = (arr, cb) => {
cb(arr[0]);
}

firstItem(foods, (firstItem) => {
console.log(`The first item is ${firstItem}.`);
});

// Write a function called getLength that passes the length of the array into the callback

const getLength = (arr, cb) => {
cb(arr.length);
}

getLength(foods, (length) => {
console.log(`The length of the array is ${length}.`);
});

// Write a function called last which passes the last item of the array into the callback

const last = (arr, cb) => {
cb(arr[arr.length - 1]);
}

last(foods, (lastItem) => {
console.log(`The last item in the array is ${lastItem}.`);
});

// Write a function called sumNums that adds two numbers and passes the result to the callback


const sumNums = (num1, num2, cb) => {
cb(num1 + num2);
}
sumNums(5, 10, (sum) => {
console.log(`The sum is ${sum}.`);
});

// Write a function called multiplyNums that adds two numbers and passes the result to the callback
const multiplyNums = (num1, num2, cb) => {
cb(num1 * num2);
}

multiplyNums(5, 10, (product) => {
console.log(`The product is ${product}.`);
Expand All @@ -52,19 +69,31 @@ multiplyNums(5, 10, (product) => {
// Write a function called contains that checks if an item is present inside of the given array.
// Pass true to the callback if it is, otherwise pass false

const contains = (arr, string, cb) => {
cb(new Set(arr).has(string));
}

contains(foods, 'ribeye', (result) => {
console.log(result ? 'ribeye is in the array' : 'ribeye is not in the array');
});

// Write a function called removeDuplicates that removes all duplicate values from the given array.
// Pass the array to the callback function. Do not mutate the original array.

const removeDuplicates = (arr, cb) => {
cb(Array.from(new Set(arr)));
}

removeDuplicates(foods, (uniqueFoods) => {
console.log(`foods with duplicates removed: ${uniqueFoods}`);
});

// Write a function called forEach that iterates over the provided array and passes the value and index into the callback.

const forEach = (arr, cb) => {
for (let i = 0; i < arr.length; i++) {
cb(arr[i], i);
}
}

forEach(foods, (value, index) => {
console.log(`${value} is at index ${index}.`);
Expand Down
8 changes: 8 additions & 0 deletions commonCharacters/commonCharacters.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,11 @@
* Example: commonCharacters('acexivou', 'aegihobu') *
* Returns: 'aeiou'
*/
const commonCharacters = (string1,string2) => {
const first = new Set(string1);
const second = new Set(string2);
const returnedStr = [...first].filter(char => second.has(char));
return returnedStr;
}

console.log(commonCharacters('acexivou', 'aegihobu'));
18 changes: 18 additions & 0 deletions evenOccurences/evenOccurences.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,22 @@

const evenOccurence = (arr) => {
// Your code here.
const uniqueSet = Array.from(new Set(arr));
let counter = 0;
for (let i = 0; i < uniqueSet.length; i++) {
counter = 0;
for (let j = 0; j < arr.length; j++) {
if (uniqueSet[i] === arr[j]) {
counter++;
}
}
if (counter % 2 === 0) {
console.log(counter);
return arr[i];
}
}
return null;
};

const onlyEven = evenOccurence([1, 7, 2, 4, 5, 1, 6, 8, 9, 6, 4, 1]);
console.log(onlyEven);
9 changes: 6 additions & 3 deletions forLoopTimeout/forLoopTimeout.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,14 @@
// See if you can solve this with just ES5 JS.
// The output should be 1, 2, 3, .... 10. Right now it just prints 11.
// I've been asked this three times in separate interviews.
// Do not define function inside for loops, you end up sharing variables.

for (var i = 1; i <= 10; i++) {

function logVar(i) {
setTimeout(function() {
// From looking at the code you would assume it would print 1 - 10
// It doesn't. Why? How can you make it print 1 - 10.
console.log(i);
}, 0);
}
for (var i = 1; i <= 10; i++) {
logVar(i);
}
12 changes: 11 additions & 1 deletion isUnique/isUnique.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,13 @@
/* Implement an algorithm to determine if a string has all unique characters.
* What if you cannot use additional data structures?
*/
*/
//

const isUnique = (string) => {
return new Set(string).size === string.length;
}



console.log(isUnique('abcdefghijklmnaa'));
console.log(isUnique('abcdefghijklmnop'));
32 changes: 31 additions & 1 deletion largestPrimePalindrome/largestPrimePalindrome.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,34 @@
* Hint: it's 929
* You will first want to determine if the number is a palindrome and then determine if it is prime.
* A palindrome is a number that is the same forwards and backwards: 121, 323, 123454321, etc.
*/
*/

const isPalindrome = (input) => {
for (let i = 0; i < Math.floor(input.length / 2); i++) {
if (input[i] !== input[input.length - i - 1]) {
return false;
}
}
return true;
}

const primePal = () => {
let primePalindrome = 0;
for (let counter = 0; counter <= 100; counter++) {
var notPrime = false;
for (let i = 2; i <= counter; i++) {
if (counter%i===0 && i!==counter) {
notPrime = true;
}
}
if (notPrime === false) {
console.log(counter);
if (isPalindrome(counter) && counter !== primePalindrome) {
primePalindrome = counter;
}
}
}
return primePalindrome;
}

primePal();
28 changes: 28 additions & 0 deletions longestString/longestString.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,31 @@
* Write a function that accepts an array of strings.
* Return the longest string in the array.
*/

/* 1. Identify test cases
['abc', 'a', 'b'] -> 'abc'
['def', 'hijk', 'l', 'm', 'nop'] -> 'hijk'
[] -> null
accepts array,
loop over items
keeps tabs of length of looped items, changes variable if current item is longer.
reaches the end and returns the variable.
*/
const longestString = (array) => {
let string = array[0];

for (let i = 0; i < array.length; i++) {
if (array[i].length > string.length) {
string = array[i]
}
}
return string;
}

const arr1 = ['abc', 'a', 'b'];
const arr2 = ['def', 'hijk', 'l', 'm', 'nop']
const arr3 = []

longestString(arr1);
longestString(arr2);
longestString(arr3);
4 changes: 2 additions & 2 deletions removeDuplicates/removeDuplicates.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,5 @@
*/

const removeDuplicates = (arr) => {
//code here...
};
return Array.from(new Set(arr));
};
22 changes: 21 additions & 1 deletion reverseCase/reverseCase.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,24 @@
* Write a function that reverses the case of each letter in the strings that it receives.
* Example: 'Hello World' -> 'hELLO wORLD'
* Assume that each string will contain only spaces and letters.
*/
*/

const changeCases = (string) => {
let newString = '';
for (let i = 0; i < string.length; i++) {
if (string[i] === ' ') {
newString += string[i];
} else {
if(string[i] === string[i].toUpperCase()){
newString += string[i].toLowerCase();
} else if( string[i] === string[i].toLowerCase()) {
newString += string[i].toUpperCase();
}
}
}
return newString;
}

changeCases('Testing This String');
changeCases('yOu ThInk yOu Soo SMUUrt!');
changeCases(' hail hydra');
14 changes: 14 additions & 0 deletions vowelCount/vowelCount.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,17 @@
* Write a function that returns the count of the total number of vowels in a string.
* Example: 'Hello World!' -> 3
*/
const vowelCount = (str) => {
const vowels = ['a', 'e', 'i', 'o', 'u'];
let counter = 0;
for (let i = 0; i < str.length; i++) {
for (let j = 0; j < vowels.length; j++) {
if (vowels[j] === str[i].toLowerCase()) {
counter++;
}
}
}
return counter;
}

console.log(vowelCount('Hello World!'));