From 62b6d62c5bd8971df2501cc6170fa558b8dc7939 Mon Sep 17 00:00:00 2001 From: ZainabMalik5 <95160741+zainabmalik5@users.noreply.github.com> Date: Thu, 5 Oct 2023 14:39:53 +0530 Subject: [PATCH 1/6] Add files via upload --- Maths/Divisors.js | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 Maths/Divisors.js diff --git a/Maths/Divisors.js b/Maths/Divisors.js new file mode 100644 index 0000000000..d282898bbc --- /dev/null +++ b/Maths/Divisors.js @@ -0,0 +1,24 @@ +/** + * @function getDivisors + * @description Generate all unique divisors of a number. + * @param {Integer} num + * @return{Vector} divisors + * @example{10-1,2,5,10} + */ +function getDivisors(num) { + const divisors = []; + for (let i = 1; i * i <= num; i++) { + if (num% i === 0) { + if (num / i !== i) { + divisors.push(i); + const div = num/ i; + divisors.push(div); + } else { + divisors.push(i); + } + } + } + divisors.sort((a, b) => a - b); + return divisors; + } + \ No newline at end of file From f798611047a0c1ecc15392db89e303afdd03c68f Mon Sep 17 00:00:00 2001 From: ZainabMalik5 <95160741+zainabmalik5@users.noreply.github.com> Date: Sun, 8 Oct 2023 14:16:36 +0530 Subject: [PATCH 2/6] Delete Maths/Divisors.js --- Maths/Divisors.js | 24 ------------------------ 1 file changed, 24 deletions(-) delete mode 100644 Maths/Divisors.js diff --git a/Maths/Divisors.js b/Maths/Divisors.js deleted file mode 100644 index d282898bbc..0000000000 --- a/Maths/Divisors.js +++ /dev/null @@ -1,24 +0,0 @@ -/** - * @function getDivisors - * @description Generate all unique divisors of a number. - * @param {Integer} num - * @return{Vector} divisors - * @example{10-1,2,5,10} - */ -function getDivisors(num) { - const divisors = []; - for (let i = 1; i * i <= num; i++) { - if (num% i === 0) { - if (num / i !== i) { - divisors.push(i); - const div = num/ i; - divisors.push(div); - } else { - divisors.push(i); - } - } - } - divisors.sort((a, b) => a - b); - return divisors; - } - \ No newline at end of file From 6e0c2211fe33168c197ef9d927a47384930c755c Mon Sep 17 00:00:00 2001 From: ZainabMalik5 <95160741+zainabmalik5@users.noreply.github.com> Date: Mon, 9 Oct 2023 15:02:38 +0530 Subject: [PATCH 3/6] Add files via upload --- .../LongestPalindromicSubstring.js | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 Dynamic-Programming/LongestPalindromicSubstring.js diff --git a/Dynamic-Programming/LongestPalindromicSubstring.js b/Dynamic-Programming/LongestPalindromicSubstring.js new file mode 100644 index 0000000000..fff01683cf --- /dev/null +++ b/Dynamic-Programming/LongestPalindromicSubstring.js @@ -0,0 +1,42 @@ +/* + LeetCode -> https://leetcode.com/problems/longest-palindromic-substring + + Given a string s, find the longest palindromic substring in s. + You may assume that the maximum length of s is 1000. + +*/ +function longestPalindrome(s) { + const n = s.length; + const dp = new Array(n + 1).fill(0).map(() => new Array(n + 1).fill(0)); + const len = new Array(n + 1).fill(0).map(() => new Array(n + 1).fill(0)); + let str = ""; + let mx = 0; +//fill for single chracter + for (let i = 0; i < n; i++) { + dp[i][i] = 1; + len[i][i] = 1; + } + + for (let i = n - 2; i>= 0; i--) { + for (let j = i + 1; j < n; j++) { + if (s[i] === s[j] && j - i === 1) { + len[i][j] = 2; + dp[i][j] = 1; + } else if (s[i] === s[j] && dp[i + 1][j - 1]) { + dp[i][j] = 1; + len[i][j] = j - i + 1; + } + } + } + + for (let i = 0; i < n; i++) { + for (let j = 0; j < n; j++) { + if (len[i][j]> mx && dp[i][j]) { + mx = len[i][j]; + str = s.substring(i, j + 1); + } + } + } + + return str; +} From 54994e049a09bbb85a9b7415b6034eb78641b524 Mon Sep 17 00:00:00 2001 From: ZainabMalik5 <95160741+zainabmalik5@users.noreply.github.com> Date: Mon, 9 Oct 2023 15:21:52 +0530 Subject: [PATCH 4/6] Delete Dynamic-Programming/LongestPalindromicSubstring.js --- .../LongestPalindromicSubstring.js | 42 ------------------- 1 file changed, 42 deletions(-) delete mode 100644 Dynamic-Programming/LongestPalindromicSubstring.js diff --git a/Dynamic-Programming/LongestPalindromicSubstring.js b/Dynamic-Programming/LongestPalindromicSubstring.js deleted file mode 100644 index fff01683cf..0000000000 --- a/Dynamic-Programming/LongestPalindromicSubstring.js +++ /dev/null @@ -1,42 +0,0 @@ -/* - LeetCode -> https://leetcode.com/problems/longest-palindromic-substring - - Given a string s, find the longest palindromic substring in s. - You may assume that the maximum length of s is 1000. - -*/ -function longestPalindrome(s) { - const n = s.length; - const dp = new Array(n + 1).fill(0).map(() => new Array(n + 1).fill(0)); - const len = new Array(n + 1).fill(0).map(() => new Array(n + 1).fill(0)); - let str = ""; - let mx = 0; -//fill for single chracter - for (let i = 0; i < n; i++) { - dp[i][i] = 1; - len[i][i] = 1; - } - - for (let i = n - 2; i>= 0; i--) { - for (let j = i + 1; j < n; j++) { - if (s[i] === s[j] && j - i === 1) { - len[i][j] = 2; - dp[i][j] = 1; - } else if (s[i] === s[j] && dp[i + 1][j - 1]) { - dp[i][j] = 1; - len[i][j] = j - i + 1; - } - } - } - - for (let i = 0; i < n; i++) { - for (let j = 0; j < n; j++) { - if (len[i][j]> mx && dp[i][j]) { - mx = len[i][j]; - str = s.substring(i, j + 1); - } - } - } - - return str; -} From 407882426500972cd433f41b2bd1ab082f3f211c Mon Sep 17 00:00:00 2001 From: ZainabMalik5 <95160741+zainabmalik5@users.noreply.github.com> Date: Mon, 9 Oct 2023 15:24:04 +0530 Subject: [PATCH 5/6] Add files via upload --- .../LongestPalindromicSubstring.js | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 Dynamic-Programming/LongestPalindromicSubstring.js diff --git a/Dynamic-Programming/LongestPalindromicSubstring.js b/Dynamic-Programming/LongestPalindromicSubstring.js new file mode 100644 index 0000000000..1c304f2dea --- /dev/null +++ b/Dynamic-Programming/LongestPalindromicSubstring.js @@ -0,0 +1,42 @@ +/* + LeetCode -> https://leetcode.com/problems/longest-palindromic-substring + + Given a string s, find the longest palindromic substring in s. + You may assume that the maximum length of s is 1000. + +*/ +function longestPalindrome(s) { + const n = s.length; + const dp = new Array(n + 1).fill(0).map(() => new Array(n + 1).fill(0)); + const len = new Array(n + 1).fill(0).map(() => new Array(n + 1).fill(0)); + let str = ""; + let mx = 0; +//fill for single character + for (let i = 0; i < n; i++) { + dp[i][i] = 1; + len[i][i] = 1; + } + + for (let i = n - 2; i>= 0; i--) { + for (let j = i + 1; j < n; j++) { + if (s[i] === s[j] && j - i === 1) { + len[i][j] = 2; + dp[i][j] = 1; + } else if (s[i] === s[j] && dp[i + 1][j - 1]) { + dp[i][j] = 1; + len[i][j] = j - i + 1; + } + } + } + + for (let i = 0; i < n; i++) { + for (let j = 0; j < n; j++) { + if (len[i][j]> mx && dp[i][j]) { + mx = len[i][j]; + str = s.substring(i, j + 1); + } + } + } + + return str; +} From f22a9019abee4494b253681d7b8e0f91f50e7945 Mon Sep 17 00:00:00 2001 From: ZainabMalik5 <95160741+zainabmalik5@users.noreply.github.com> Date: Mon, 9 Oct 2023 22:41:11 +0530 Subject: [PATCH 6/6] Update LongestPalindromicSubstring.js --- Dynamic-Programming/LongestPalindromicSubstring.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Dynamic-Programming/LongestPalindromicSubstring.js b/Dynamic-Programming/LongestPalindromicSubstring.js index 1c304f2dea..ba18b1edc5 100644 --- a/Dynamic-Programming/LongestPalindromicSubstring.js +++ b/Dynamic-Programming/LongestPalindromicSubstring.js @@ -5,6 +5,11 @@ You may assume that the maximum length of s is 1000. */ +/** + * Finds the longest palindromic substring + * @param {string} s Input string + * @returns {string} Longest Palindromic Substring + */ function longestPalindrome(s) { const n = s.length; const dp = new Array(n + 1).fill(0).map(() => new Array(n + 1).fill(0));