125. Valid Palindrome
A phrase is a palindrome if, after converting all uppercase letters into lowercase letters and removing all non-alphanumeric characters, it reads the same forward and backward. Alphanumeric characters include letters and numbers
Two PointersExample 1:
- Input:
s = "A man, a plan, a canal: Panama" - Output:
true - Explanation:
"amanaplanacanalpanama"is a palindrome.
Example 2:
- Input:
s = "race a car" - Output:
false - Explanation:
"raceacar"is not a palindrome.
Example 3:
- Input:
s = " " - Output:
true - Explanation:
sis an empty string""after removing non-alphanumeric characters. Since an empty string reads the same forward and backward, it is a palindrome.
Constraints:
1 <= s.length <= 2 * 10^5sconsists only of printable ASCII characters.
Approach
Solution
/**
* @param {string} s
* @return {boolean}
*/
var isPalindrome = function(s) {
let normal = s.replace(/[^a-zA-Z0-9]/g, "").toLowerCase()
let i = 0, j = normal.length - 1;
while (i < j) {
if(normal[i] !== normal[j]) {
return false;
}
i++;
j--;
}
return true;
};