https://leetcode.com/problems/valid-palindrome/
Valid palindrome
Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.
For example,
"A man, a plan, a canal: Panama"
is a palindrome.
"race a car"
is not a palindrome.
Note:
Are you consider that the string might is empty? This was a good question to ask during a interview.
For the purpose of this problem, we define empty string as valid palindrome.
Two pointers, one pointing to the head, one pointing to the tail. If it's not alphanumeric, keep looking, head + + tail--and then compare the values.
Did not pay the time to see this problem has solution, considered for a long time there is no other clever way. After a look, in fact, there is no, everything is an illusion.
1 /**2 * @param {string} s3 * @return {Boolean}4 */5 varIspalindrome =function(s) {6s =S.trim ();7 if(s = = = ""){8 return true;9}Else{Ten vari = 0, j = s.length-1; One while(I <=j) { A while(!/[a-z0-9]/i.test (s[i]) && i < s.length && I <j) { -i++; - } the while(!/[a-z0-9]/i.test (S[j]) && J > 0 && i <j) { -j--; - } - + if(S[i].touppercase ()!==s[j].touppercase ()) { - return false; + } A ati++; j--; - } - -i--; J + +; - if(I!== J && s[i].touppercase ()!==s[j].touppercase ()) { - return false; in } - to return true; + } -};
[Leetcode][javascript]valid palindrome