Hello friends,

If you come here to check the solution of the following question.

# 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.

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 * 105`

`s`

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*)
## No comments:

## Post a Comment