博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode 125. Valid Palindrome 题解
阅读量:6910 次
发布时间:2019-06-27

本文共 1846 字,大约阅读时间需要 6 分钟。

题目:

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

示例 1:

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

示例 2:

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

题解:

主要是先转换为小写,再利用正则表达式删除不是数字和字母的字符。

C++
#include
//tolwer;#include
// transform;class Solution {
public: bool isPalindrome(string s) { transform(s.begin(), s.end(), s.begin(), ::tolower); // 转换为小写 s = regex_replace(s, regex("[^a-z0-9]"), "");// 去除不是字母和数字的字符 int i = 0; int j = s.size() - 1; while(i < j && s[i] == s[j]){ i++; j--; } return i >= j; } };复制代码
Java
class Solution {    public boolean isPalindrome(String s) {        s = s.toLowerCase();// 转换为小写        s = s.replaceAll("[^0-9a-z]", "");// 去除不是字母和数字的字符        int i  = 0;        int j = s.length() - 1;        while(i < j) {            if(s.charAt(i) == s.charAt(j)) {                i++;                j--;            }            else {                return false;            }        }        return true;    }}复制代码
Python
class Solution(object):    def isPalindrome(self, s):        """        :type s: str        :rtype: bool        """        s = s.lower()        s = re.sub('[^0-9a-z]', '', s) # 去除不是字母和数字的字符        i = 0        j = len(s) - 1        while i < j:            if (s[i] == s[j]):                i += 1                j -= 1            else:                return False        return True复制代码
JavaScript
/** * @param {string} s * @return {boolean} */var isPalindrome = function(s) {    var reg = /[^0-9a-z]/g   // g表示全局替换,否则只替换第一个    s = s.toLowerCase()    s = s.replace(reg, "") // 去除不是字母和数字的字符    var i = 0    var j = s.length - 1    while (i < j) {        if(s[i] === s[j]) {            i++;            j--;        }        else {            return false;        }    }    return true;};复制代码

转载地址:http://oofcl.baihongyu.com/

你可能感兴趣的文章
列表删除页代码
查看>>
关注马云(10081201)——创业之初勿做最重要最难之事
查看>>
html5----canvas
查看>>
linq练习
查看>>
MySQL的复制
查看>>
GridView中实现CheckBox的全选
查看>>
home.pl 正在促销,一些域名免费(终止于2017.4.4)
查看>>
python、js 时间日期模块time
查看>>
Loadrunner监控Centos
查看>>
转:问题解决:The project cannot be built until build path errors are resolved
查看>>
Python--day25--面向对象之多态
查看>>
submit
查看>>
数据结构-----树状数组
查看>>
那些年我们一起追逐的多线程(Thread、ThreadPool、委托异步调用、Task/TaskFactory、Parallerl、async和await)...
查看>>
测试DOM0级事件和DOM2级事件的堆叠
查看>>
违章查询源码分享
查看>>
mac终端下svn常用命令
查看>>
C++的lambda表达式
查看>>
新手学习python(十六)封装redis
查看>>
vue移动端弹框组件
查看>>