From d67600cae6cbb125bf12831088642e2bd879992b Mon Sep 17 00:00:00 2001 From: Evan Philakhong Date: Wed, 19 Mar 2025 19:51:41 +0000 Subject: [PATCH 1/6] feat: added lesson_07_d functions --- lesson_07/conditionals/src/part_d.ts | 38 +++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/lesson_07/conditionals/src/part_d.ts b/lesson_07/conditionals/src/part_d.ts index c30cbac2f..d89e2c0f2 100644 --- a/lesson_07/conditionals/src/part_d.ts +++ b/lesson_07/conditionals/src/part_d.ts @@ -7,7 +7,11 @@ * @returns */ export function isWithinRange(num: number, min: number, max: number): boolean { - return false; + if (num >= min && num <= max) { + return true; + } else { + return false; + } } /** @@ -19,6 +23,9 @@ export function isWithinRange(num: number, min: number, max: number): boolean { * @returns */ export function isValidTriangle(a: number, b: number, c: number): boolean { + if (a + b > c || a + c > b || b + c > a) { + return true; + } return false; } @@ -30,5 +37,34 @@ export function isValidTriangle(a: number, b: number, c: number): boolean { * @returns */ export function getSeason(month: number): string { + const winter: number[] = [12, 1, 2]; + const spring: number[] = [3, 4, 5]; + const summer: number[] = [6, 7, 8]; + const fall: number[] = [9, 10, 11]; + + for (const num of winter) { + if (num === month) { + return "Winter"; + } + } + + for (const num of spring) { + if (num === month) { + return "Spring"; + } + } + + for (const num of summer) { + if (num === month) { + return "Summer"; + } + } + + for (const num of fall) { + if (num === month) { + return "Fall"; + } + } + return "Invalid month"; } From 70300864bf3abe180f790f4bad736963dd2abf34 Mon Sep 17 00:00:00 2001 From: Evan Philakhong Date: Wed, 19 Mar 2025 19:53:22 +0000 Subject: [PATCH 2/6] feat: added compareStrings & computeFactorial func --- lesson_07/conditionals/src/lesson7.ts | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/lesson_07/conditionals/src/lesson7.ts b/lesson_07/conditionals/src/lesson7.ts index cc44be44c..8e2b9516d 100644 --- a/lesson_07/conditionals/src/lesson7.ts +++ b/lesson_07/conditionals/src/lesson7.ts @@ -11,10 +11,15 @@ export function compareStrings(a: string, b: string): number { // The distance will be a number less than 0 if string `a` is lexicographically less than `b`, 1 // if it is greater, and 0 if the strings are equal. const distance = computeLexicographicDistance(a, b); - // TODO(you): Finish this method. - return 0; + if (distance < 0) { + return -1; + } else if (distance > 0) { + return 1; + } else { + return 0; + } } /** @@ -24,7 +29,11 @@ export function compareStrings(a: string, b: string): number { * @return The factorial of n. */ export function computeFactorial(n: number): number { - return 0; + let result: number = n; + for (let i = result; i > 0; i--) { + result = i * (i - 1); + } + return result; } /** From 48c783993b98dbc6011f87427123a034aca2e703 Mon Sep 17 00:00:00 2001 From: Evan Philakhong Date: Wed, 19 Mar 2025 20:16:57 +0000 Subject: [PATCH 3/6] wip: binarySearch --- lesson_07/conditionals/src/lesson7.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/lesson_07/conditionals/src/lesson7.ts b/lesson_07/conditionals/src/lesson7.ts index 8e2b9516d..70a63fbbc 100644 --- a/lesson_07/conditionals/src/lesson7.ts +++ b/lesson_07/conditionals/src/lesson7.ts @@ -43,6 +43,9 @@ export function computeFactorial(n: number): number { * @return An array containing the first `n` Fibonacci values. */ export function getFirstNFibonacciNumbers(n: number): number[] { + if (n < 0) { + return []; + } return []; } @@ -74,5 +77,13 @@ export function binarySearch( // Else if values[pivotIndex] is greater than the value, then // call `binarySearch(values, start, pivotIndex - 1, value)` and return its value; // Else call `binarySearch(values, pivotIndex + 1, end, value)` and return its value. + + if (value === values[pivotIndex]) { + return pivotIndex; + } else if (value < values[pivotIndex]) { + binarySearch(values, start, pivotIndex - 1, value); + } else { + binarySearch(values, pivotIndex + 1, end, value); + } return -1; } From d8135a7ee5149aa4c3b73b52596392658212b010 Mon Sep 17 00:00:00 2001 From: Evan Philakhong Date: Wed, 19 Mar 2025 20:30:45 +0000 Subject: [PATCH 4/6] feat: finished part_d --- lesson_07/conditionals/src/part_d.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lesson_07/conditionals/src/part_d.ts b/lesson_07/conditionals/src/part_d.ts index d89e2c0f2..acee75ae7 100644 --- a/lesson_07/conditionals/src/part_d.ts +++ b/lesson_07/conditionals/src/part_d.ts @@ -23,10 +23,11 @@ export function isWithinRange(num: number, min: number, max: number): boolean { * @returns */ export function isValidTriangle(a: number, b: number, c: number): boolean { - if (a + b > c || a + c > b || b + c > a) { + if (a + b > c && a + c > b && b + c > a) { return true; + } else { + return false; } - return false; } /** From 880fe86fbb698856440e35a8fc767ad67ce8bb8f Mon Sep 17 00:00:00 2001 From: Evan Philakhong Date: Thu, 20 Mar 2025 02:50:24 +0000 Subject: [PATCH 5/6] feat: finished lesson_07 --- lesson_07/conditionals/.env.test | 2 +- lesson_07/conditionals/src/lesson7.ts | 35 +++++++++++++++++++++------ 2 files changed, 29 insertions(+), 8 deletions(-) diff --git a/lesson_07/conditionals/.env.test b/lesson_07/conditionals/.env.test index de8c44249..f811b9059 100644 --- a/lesson_07/conditionals/.env.test +++ b/lesson_07/conditionals/.env.test @@ -1 +1 @@ -HW_VERSION=your homework version here \ No newline at end of file +HW_VERSION=D \ No newline at end of file diff --git a/lesson_07/conditionals/src/lesson7.ts b/lesson_07/conditionals/src/lesson7.ts index 70a63fbbc..61f64ecc0 100644 --- a/lesson_07/conditionals/src/lesson7.ts +++ b/lesson_07/conditionals/src/lesson7.ts @@ -29,9 +29,16 @@ export function compareStrings(a: string, b: string): number { * @return The factorial of n. */ export function computeFactorial(n: number): number { - let result: number = n; - for (let i = result; i > 0; i--) { - result = i * (i - 1); + // edge cases + if (n < 0) { + return 0; + } else if (n < 2) { + return 1; + } + + let result = 1; + for (let i = n; i > 0; i--) { + result *= i; } return result; } @@ -43,10 +50,24 @@ export function computeFactorial(n: number): number { * @return An array containing the first `n` Fibonacci values. */ export function getFirstNFibonacciNumbers(n: number): number[] { - if (n < 0) { + const arr: number[] = [1, 1]; + let prev = 1; + let curr = 1; + let next; + + if (n < 1) { return []; + } else if (n === 1) { + return [1]; + } + + for (let i = 2; i < n; i++) { + next = prev + curr; + arr[i] = next; + prev = curr; + curr = next; } - return []; + return arr; } /** @@ -81,9 +102,9 @@ export function binarySearch( if (value === values[pivotIndex]) { return pivotIndex; } else if (value < values[pivotIndex]) { - binarySearch(values, start, pivotIndex - 1, value); + return binarySearch(values, start, pivotIndex - 1, value); } else { - binarySearch(values, pivotIndex + 1, end, value); + return binarySearch(values, pivotIndex + 1, end, value); } return -1; } From c356b2faaf6f98747329b0304b75ec0cdaeda3d4 Mon Sep 17 00:00:00 2001 From: Evan Philakhong Date: Thu, 20 Mar 2025 14:39:37 +0000 Subject: [PATCH 6/6] refactor: nested if statement in for loop --- lesson_07/conditionals/src/lesson7.ts | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/lesson_07/conditionals/src/lesson7.ts b/lesson_07/conditionals/src/lesson7.ts index 61f64ecc0..046d44bd0 100644 --- a/lesson_07/conditionals/src/lesson7.ts +++ b/lesson_07/conditionals/src/lesson7.ts @@ -50,23 +50,22 @@ export function computeFactorial(n: number): number { * @return An array containing the first `n` Fibonacci values. */ export function getFirstNFibonacciNumbers(n: number): number[] { - const arr: number[] = [1, 1]; - let prev = 1; + const arr: number[] = []; let curr = 1; + let prev = 1; let next; - if (n < 1) { - return []; - } else if (n === 1) { - return [1]; + for (let i = 0; i < n; i++) { + if (i < 2) { + arr[i] = 1; + } else { + next = curr + prev; + arr[i] = next; + prev = curr; + curr = next; + } } - for (let i = 2; i < n; i++) { - next = prev + curr; - arr[i] = next; - prev = curr; - curr = next; - } return arr; }