125.认证回文串(javascript)125.ValidPalindrome

原创
小哥 3年前 (2022-11-10) 阅读数 8 #大杂烩

给定一个字符串,验证它是一个返回字符串,只考虑字母和数字字符,忽略字母的大小写。
注意:在这个问题中,我们将空字符串定义为有效的返回字符串。
示例 1:

输入: “A man, a plan, a canal: Panama”
输出: true
解释:“amanaplanacanalpanama” 是回文串

示例 2:

输入: “race a car”
输出: false
解释:“raceacar” 不是返回字符串

A phrase is a palindrome if, after converting all uppercase letters into lowercase letters and removing all non-alphanumeric characters, it reads the same forward and backward. 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.

var isPalindrome = function (s) {
    //toLocaleLowerCase将所有字符串中的大写字母转换为小写字母,并保留字母和数字。
    var str = s.toLocaleLowerCase().match(/[a-z0-9]+/g);
    if (!str) {
        return true;
    }
    str = str.join("")//join操作前确保str有数据
    //str翻转字符串并将其与前一个字符串进行比较。
    if (str.split("").reverse().join("") !== str) {
        return false
    }
    return true
};

var isPalindrome = function (s) {
    //toLocaleLowerCase将所有字符串中的大写字母转换为小写字母,并保留字母和数字。
    var str = s.toLocaleLowerCase().match(/[a-z0-9]+/g);
    if (!str) {
        return true;
    }
    str = str.join("")//join操作前确保str有数据
    var strlen = str.length
    var strl = str.length / 2
    //使用双指针,一个指向第一个,另一个指向最后一个。一个前锋,另一个前锋
    for (let j = 0; j < strl; j++) {
        if (str[j] !== str[strlen - 1 - j]) {
            return false
        }
    }
    return true
};

知识点:
1.toLocaleLowerCase 方法用于将字符串转换为小写。

var str="Hello World!"
console.log(str.toLocaleLowerCase())
//"hello world!"

2.在字符串中查找 “ain”:

var str="The rain in SPAIN stays mainly in the plain"; 
var n=str.match(/ain/g);
console.log("n", n);
//n 输出数组结果值:
//["ain","ain","ain"]

match() 该方法检索字符串。 String Object找到一个或多个。 regexp 匹配文本。该方法的行为在很大程度上取决于 regexp 是否有标志 g。如果 regexp 没有标志 g,那么 match() 该方法只能用于 stringObject 在中执行匹配。如果没有找到匹配的文本, match() 将返回 null否则,它将返回一个数组,该数组保存有关它找到的匹配文本的信息。

leetcode题:
https://leetcode-cn.com/problems/valid-palindrome/

版权声明

所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除