Files
leetcode/work/Easy/Two Pointers/125.valid-palindrome.js
T

65 lines
1.5 KiB
JavaScript
Raw Normal View History

/*
* 125. Valid Palindrome
* Difficulty: Easy
* https://leetcode.com/problems/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.
*
* Given a string s, return true if it is a palindrome, or false
* otherwise.
*
*
*
* Example 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: s is 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^5
*
* • s consists only of printable ASCII characters.
*/
/**
* @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;
};