題目
難度級別:簡單
給定一個字符串,驗證它是否是迴文串,只考慮字母和數字字符,可以忽略字母的大小寫。
說明:本題中,我們將空字符串定義爲有效的迴文串。
示例 1:
輸入: "A man, a plan, a canal: Panama"
輸出: true
示例 2:
輸入: "race a car"
輸出: false
解題思路
這道題因爲js沒有判斷字符串同時包含字母和數字得方法,考慮到更簡單...所以通過正則將字符串保留爲字母(大寫字母轉爲小寫字母用js)和數字之後,使用雙指針法,一頭一尾判斷字符是否相等,若存在不相等時輸出false
const isPalindrome = function(s) {
s = s.toLowerCase().replaceAll(/[^0-9a-z]/g,"")
for(let i = 0, j = s.length - 1; i < s.length, j >= 0; i++ , j-- )
if (s[i] !== s[j]) return false
return true
};
題目來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/valid-palindrome