Good morning! Here's our prompt for today.
Given a string str
, can you write a method that will return True
if is a palindrome and False
if it is not? If you'll recall, a palindrome
is defined as "a word, phrase, or sequence that reads the same backward as forward". For now, assume that we will not have input strings that contain special characters or spaces, so the following examples hold:
1let str = 'thisisnotapalindrome';
2isPalindrome(str);
3// false
4
5str = 'racecar';
6isPalindrome(str);
7// true
For an extra challenge, try to ignore non-alphanumerical characters. The final solution that we present will handle all edge cases.
Constraints
- Length of the given string <=
100000
- The string will consist of ASCII characters (some or all)
- Expected time complexity :
O(n)
- Expected space complexity :
O(1)
Try to solve this here or in Interactive Mode.
How do I practice this challenge?
xxxxxxxxxx
43
var assert = require('assert');
​
function isPalindrome(str) {}
​
function isAlphaNumeric(c) {}
​
console.log(isPalindrome('A Santa Lived As a Devil At NASA'));
​
try {
assert.equal(isPalindrome('A Santa Lived As a Devil At NASA'), true);
​
console.log(
'PASSED: ' +
"assert.equal(isPalindrome('A Santa Lived As a Devil At NASA'),true)"
);
} catch (err) {
console.log(err);
}
​
try {
assert.equal(isPalindrome('gold'), false);
​
console.log('PASSED: ' + "assert.equal(isPalindrome('gold'),false)");
} catch (err) {
console.log(err);
}
​
try {
assert.equal(isPalindrome('a'), true);
OUTPUT
:001 > Cmd/Ctrl-Enter to run, Cmd/Ctrl-/ to comment
Here's a video of us explaining the solution.
To change the speed of the video or see it in full screen, click the icons to the right of the progress bar.

We'll now take you through what you need to know.
How do I use this guide?