Javascript/Math: editing file name

This commit is contained in:
itsvinayak
2020-05-06 18:30:19 +05:30
parent ba75297f72
commit 75f6888019
24 changed files with 0 additions and 0 deletions

51
Maths/Palindrome.js Normal file
View File

@ -0,0 +1,51 @@
/**
* A palindrome is any string that can be reversed and still be the same.
* An example of one is 'radar', since it is spelled the same even after
* being reversed. One method to check if a
*
* Here's how this works recursively:
*
* Palindrome('radar')
* true && Palindrome('ada')
* true && true && Palindrome('d')
* true && true && true && true
*
* @flow
* @complexity: O(n)
*/
function PalindromeRecursive (string) {
// Base case
if (string.length < 2) return true
// Check outermost keys
if (string[0] !== string[string.length - 1]) {
return false
}
return PalindromeRecursive(string.slice(1, string.length - 1))
}
function PalindromeIterative (string) {
const _string = string
.toLowerCase()
.replace(/ /g, '')
.replace(/,/g, '')
.replace(/'.'/g, '')
.replace(/:/g, '')
.split('')
// A word of only 1 character is already a palindrome, so we skip to check it
while (_string.length > 1) {
if (_string.shift() !== _string.pop()) {
return false
}
}
return true
}
// testing
console.log(PalindromeRecursive('Javascript Community'))
console.log(PalindromeIterative('mom'))