高频算法面试题(字符串) leetcode 125. 验证回文串

栏目: 编程工具 · 发布时间: 6年前

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

leetcode 125. 验证回文串

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

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

示例 1:

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

让我们一起开启一个专题,刷刷高频面试题~

从字符串开始。

这道题题意很好理解,我就不过分解读了。我们用双指针的解法,直接代码招呼:

func isPalindrome(s string) bool {
    //如果字符串长度为0或者为1,肯定为true咯
    if len(s) <= 1 {
        return true
    }
    //双指针
    low, hi := 0, len(s) - 1
    for low < hi {
        //这里是判断当前指向的字符是否为数字或者字母
        //而且,low和hi可以用for的语法进行修改~是一个很酷的减少代码量的技巧哦
        for ; low < hi && !isValid(s[low]); low++ {}
        for ; low < hi && !isValid(s[hi]); hi--{}
        byteLow, byteHi := s[low], s[hi]
        //这里不用多说了,大写统一转成小写
        if byteLow >= 'A' && byteLow <= 'Z' {
            byteLow = byteLow - 'A' + 'a'
        }
        if byteHi >= 'A' && byteHi <= 'Z' {
            byteHi = byteHi - 'A' + 'a'
        }
        //碰到不满足的直接return
        if byteLow != byteHi {
            return false
        }
        low, hi = low+1, hi-1
    }
    return true
}

func isValid(b byte) bool {
    return (b >= 'a' && b <= 'z') || (b >= 'A' && b <= 'Z') || (b >= '0' && b <= '9')
}

由俭入奢易,由奢入俭难!做了很多题之后反过来看这样一道“简单”的题目,反而学到了很多东西。我们不能小看任何一道题,不能小看人生中任何一道坎,但是,最不能小看的,就是身边那些看似不起眼的人,相信我哦,我们都被金子包围着,所以,我们更要成为金子。

算法梦想家,来跟我一起玩算法,玩音乐,聊聊文学创作,咱们一起天马行空!

高频算法面试题(字符串) leetcode 125. 验证回文串


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

引人入胜

引人入胜

Lynda Felder / 李婧 / 机械工业出版社华章公司 / 2012-9 / 59.00元

在这个信息泛滥、人人焦躁的时代,用户对待网页上密密麻麻的信息如同速食快餐一般,来不及咀嚼和回味就直接从眼前一闪而过了。用户是否能喜欢你的网站内容,往往取决于他瞬间的感受。我们如何才能使网站引人入胜、让用户看一眼就能迷上并流连忘返?本书给出了切实可行的解决方案,系统总结了创建优秀网站内容的策略、方法与最佳实践,内容丰富而生动。 本书作者极富创作魅力,将所有影响网站内容创作的问题进行逐一讲解和分......一起来看看 《引人入胜》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

URL 编码/解码
URL 编码/解码

URL 编码/解码