Hello friends,
If you come here to check the solution of the following question.
JavaScript find valid palindrome or not
JavaScript find valid palindrome or not
this question is asked in LeetCode as a valid palindrome(Question Number -125) and its
difficulty is easy.
If you search on google mostly we get solutions in Java, Python, or C++. if we are lucky then only we get the
solution in javascript for the leet code questions.
solution in javascript for the leet code questions.
So let’s first understand the question.
A phrase is a palindrome if it reads
the same forward and backward after converting all uppercase letters into lowercase letters and removing all
non-alphanumeric characters. 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 * 105s
consists
only of printable ASCII characters.
So the solution to the above question is.
/**
* @param {string} s
* @return {boolean}
*/
var isPalindrome = function(s) {
s = s.toLowerCase().replace(/[W_]/g,""); // replace() method will replace all non alphanumeric to empty chars
let left = 0;
let right = s.length-1;
while(left < right){
if(s[left]!==s[right]){
return false;
}
left++;
right--;
}
return true;
};
Complexity of the solution is as follows:
Time Complexity: O(N)
Space Complexity: O(1)