From bc76dad28f68794d6273b3c83381cf4c5efd2eb9 Mon Sep 17 00:00:00 2001 From: Ali Hassan Date: Sat, 10 Oct 2020 22:47:39 +0500 Subject: [PATCH] palindrome-recursive-algorithm-added (#450) --- Recursive/Palindrome.js | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 Recursive/Palindrome.js diff --git a/Recursive/Palindrome.js b/Recursive/Palindrome.js new file mode 100644 index 000000000..483fb012e --- /dev/null +++ b/Recursive/Palindrome.js @@ -0,0 +1,30 @@ + +// Check whether the given string is Palindrome or not +const Palindrome = (str) => { + if (typeof str !== 'string') { + str = str.toString() + } + + if (str === null || str === undefined) { + return false + } + + if (str.length === 1 || str.length === 0) { + return true + } + + if (str[0] !== str[str.length - 1]) { + return false + } else { + return Palindrome(str.slice(1, str.length - 1)) + } +}; + +// testing +(() => { + console.log('Palindrome: String: a = ', Palindrome('a')) + console.log('Palindrome: String: abba = ', Palindrome('abba')) + console.log('Palindrome: String: ababa = ', Palindrome('ababa')) + console.log('Not Palindrome: String: abbxa = ', Palindrome('abbxa')) + console.log('Not Palindrome: String: abxa = ', Palindrome('abxa')) +})()