125.认证回文串(javascript)125.ValidPalindrome
原创给定一个字符串,验证它是一个返回字符串,只考虑字母和数字字符,忽略字母的大小写。
注意:在这个问题中,我们将空字符串定义为有效的返回字符串。
示例 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/
版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除
itfan123



