双指针解法

    1. var isPalindrome = function(s) {
    2. let a=s.toLocaleLowerCase().match(/[a-z0-9]+/g);
    3. if(!a) return true
    4. let str=a.join('')
    5. // 双指针
    6. let left=0;
    7. let right=str.length-1
    8. while(left<right){
    9. if(str[left]===str[right]){
    10. left++
    11. right--
    12. } else {
    13. return false
    14. }
    15. }
    16. return true
    17. };
    18. 作者:gang-feng
    19. 链接:https://leetcode-cn.com/problems/valid-palindrome/solution/zheng-ze-shuang-zhi-zhen-by-gang-feng-lvrr/
    20. 来源:力扣(LeetCode
    21. 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
    1. var isPalindrome = function(s) {
    2. // \W匹配非数字、字母
    3. const str = s.toLocaleLowerCase().replace(/[\W_]/g,'');
    4. // 空串直接返回true
    5. if(!str) return true
    6. let left = 0;
    7. let right = str.length-1;
    8. while(left<right) {
    9. if(str[left]===str[right]) {
    10. left++;
    11. right--;
    12. }else {
    13. return false
    14. }
    15. }
    16. return true;
    17. };