From e8fc8ce41e857afb62d1d27152d2d1fc655cbd0c Mon Sep 17 00:00:00 2001 From: MarLatte <86508134+marlatte@users.noreply.github.com> Date: Sat, 20 May 2023 02:37:41 -0400 Subject: [PATCH] Update palindromes to handle numbers better The previous solution removed numbers entirely, whereas this one treats them like letters and checks if they are evenly spaced. More importantly, the old solution test seemed to check if the numbers were palindromic, but because the solution replaced them with "", it wasn't testing what it seemed to. I added a new test to differentiate between the palindromic "rac3e3car" and the non-palindromic "r3ace3car". These changes also obviate the problems raised in Issue #355. --- 09_palindromes/solution/palindromes-solution.js | 2 +- 09_palindromes/solution/palindromes-solution.spec.js | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/09_palindromes/solution/palindromes-solution.js b/09_palindromes/solution/palindromes-solution.js index bc5ef94..7950015 100644 --- a/09_palindromes/solution/palindromes-solution.js +++ b/09_palindromes/solution/palindromes-solution.js @@ -1,5 +1,5 @@ const palindromes = function (string) { - const processedString = string.toLowerCase().replace(/[^a-z]/g, ""); + const processedString = string.toLowerCase().replace(/[^a-z0-9]/g, ""); return processedString.split("").reverse().join("") == processedString; }; diff --git a/09_palindromes/solution/palindromes-solution.spec.js b/09_palindromes/solution/palindromes-solution.spec.js index e8d7e6a..6e31d91 100644 --- a/09_palindromes/solution/palindromes-solution.spec.js +++ b/09_palindromes/solution/palindromes-solution.spec.js @@ -24,4 +24,7 @@ describe('palindromes', () => { test('works with numbers in a string', () => { expect(palindromes('rac3e3car')).toBe(true); }); + test('works with unevenly spaced numbers in a string', () => { + expect(palindromes('r3ace3car')).toBe(false); + }); });