链接:https://leetcode-cn.com/problems/valid-palindrome
如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。则可以认为该短语是一个 回文串 。
字母和数字都属于字母数字字符。
给你一个字符串 s,如果它是 回文串 ,返回 true ;否则,返回 false 。
:::info
输入: s = “A man, a plan, a canal: Panama”
输出:true
解释:”amanaplanacanalpanama” 是回文串。
:::
思路
先将字符串中的非字母数字字符移除,并将大写字母进行小写后,利用双指针分别指向字符串首尾。左右指针指向元素进行比较,如果相同则指针移动,否则直接返回false.
var isPalindrome = function(s) {s = s.replace(/[^0-9a-zA-Z]/g, '').toLowerCase();let i = 0;let j = s.length - 1;while (i < j) {if (s[i] !== s[j]) return false;i++;j--;}return true;};
