资讯专栏INFORMATION COLUMN

【LeetCode】字符串初级算法-验证回文字符串

Atom / 599人阅读

摘要:题目描述验证回文字符串给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明本题中,我们将空字符串定义为有效的回文串。

题目描述

验证回文字符串
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。

说明:本题中,我们将空字符串定义为有效的回文串。

示例 1:

输入: "A man, a plan, a canal: Panama"
输出: true

示例 2:

输入: "race a car"
输出: false
思路

用正则表达式删除非数字和非字母的字符,然后首尾比较。
方法一:

str.replace(/W*|D*/g,"")    
W 不是字母
D 不是数字
*  表示任意个字符(包括0个)
| 表示或
g 全局匹配
replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串
/W*|D*/g 不是字母或者不是字符的任意个字符

方法二:

var str_1 = str.replace(/[^0-9a-z]/g,"");  
[^0-9a-z] 查找任何不在方括号之间的字符。
JavaScript实现
/**
 * @param {string} s
 * @return {boolean}
 */
var isPalindrome = function(s) {
    let str = s.toLowerCase();    // toLowerCase转为小写,toUpperCase转为大写
    var str_1 = str.replace(/W*|D*/g,"");
    for(let i = 0; i < str_1.length / 2; i++){
        if(str_1[i] != str_1[str_1.length - i - 1]){
           return false;
           }
    }
    return true;
};

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/97511.html

相关文章

  • LeetCode天梯>Day028 回文链表(双指针+递归+栈+数组) | 初级算法 | Pyth

    摘要:先实现栈操作遍历链表,把每个节点都进中然后再遍历链表,同时节点依次出栈,二者进行比较。 ?作者简介:大家好,我是车神哥,府学路18号的车神? ?个人主页:应无...

    miguel.jiang 评论0 收藏0
  • [算法总结] 搞定 BAT 面试——几道常见的子符串算法

    摘要:第一种方法常规方法。如果不存在公共前缀,返回空字符串。注意假设字符串的长度不会超过。说明本题中,我们将空字符串定义为有效的回文串。示例输入输出一个可能的最长回文子序列为。数值为或者字符串不是一个合法的数值则返回。 说明 本文作者:wwwxmu 原文地址:https://www.weiweiblog.cn/13s... 作者的博客站点:https://www.weiweiblog.c...

    chanjarster 评论0 收藏0
  • W3Cschool——初级脚本算法

    摘要:方法二提供者沐辰楼姬采用对象的方法取值优化内部循环性能确认末尾字符算法挑战检查一个字符串是否以指定的字符串结尾。方法一方法二提供者沐辰楼姬使用数组对象方法,把数组的第一个元素从其中删除,并返回第一个元素的值。 showImg(https://segmentfault.com/img/remote/1460000009702368?w=1269&h=541); 前言 偶然看到W3Csch...

    mayaohua 评论0 收藏0
  • W3Cschool——初级脚本算法

    摘要:方法二提供者沐辰楼姬采用对象的方法取值优化内部循环性能确认末尾字符算法挑战检查一个字符串是否以指定的字符串结尾。方法一方法二提供者沐辰楼姬使用数组对象方法,把数组的第一个元素从其中删除,并返回第一个元素的值。 showImg(https://segmentfault.com/img/remote/1460000009702368?w=1269&h=541); 前言 偶然看到W3Csch...

    CntChen 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<