Add palindrome solution

This commit is contained in:
Adelina Moroaca 2023-12-23 16:12:05 +02:00
parent 660b82042a
commit 1dce662019
2 changed files with 26 additions and 10 deletions

View File

@ -1,6 +1,17 @@
const palindromes = function () {
const palindromes = function(str) {
let strL = str.toString().toLowerCase().toUpperCase().replace(/[.,\/#!$%\^&\*;:{}=\-_`~()]/g,"").replace(/[\W_]+/g, "");
let newStr = '';
for(i = strL.length; i >= 0; i--){
newStr += strL.charAt(i);
// console.log(newStr)
}
if (strL === newStr) {
return true;
} else {
return false;
}
};
palindromes('lid off a daffodil') // true
palindromes('tacos') // false
// Do not edit below this line
module.exports = palindromes;

View File

@ -4,25 +4,30 @@ describe('palindromes', () => {
test('works with single words', () => {
expect(palindromes('racecar')).toBe(true);
});
test.skip('works with punctuation ', () => {
test('works with punctuation ', () => {
expect(palindromes('racecar!')).toBe(true);
});
test.skip('works with upper-case letters ', () => {
test('works with upper-case letters ', () => {
expect(palindromes('Racecar!')).toBe(true);
});
test.skip('works with multiple words', () => {
//de facut
test('works with multiple words', () => {
expect(palindromes('A car, a man, a maraca.')).toBe(true);
});
test.skip('works with multiple words', () => {
//de facut
test('works with multiple words', () => {
expect(palindromes('Animal loots foliated detail of stool lamina.')).toBe(true);
});
test.skip('doesn\'t just always return true', () => {
test('doesn\'t just always return true', () => {
expect(palindromes('ZZZZ car, a man, a maracaz.')).toBe(false);
});
test.skip('works with numbers in a string', () => {
test('works with numbers in a string', () => {
expect(palindromes('rac3e3car')).toBe(true);
});
test.skip('works with unevenly spaced numbers in a string', () => {
test('works with unevenly spaced numbers in a string', () => {
expect(palindromes('r3ace3car')).toBe(false);
});
});