内容简介:给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 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') }
由俭入奢易,由奢入俭难!做了很多题之后反过来看这样一道“简单”的题目,反而学到了很多东西。我们不能小看任何一道题,不能小看人生中任何一道坎,但是,最不能小看的,就是身边那些看似不起眼的人,相信我哦,我们都被金子包围着,所以,我们更要成为金子。
算法梦想家,来跟我一起玩算法,玩音乐,聊聊文学创作,咱们一起天马行空!
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 算法 - 找最长回文字符串, 从3s到30ms的解法说明
- leetcode刷题心得 005: Longest Palindromic Substring (最长回文字符串)
- data_structure_and_algorithm -- 如何找到字符串中最长回文子串: java实现
- 回文算法(JavaScript)
- 让我们一起啃算法----回文数
- 每日一道 LeetCode (3):回文数
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
推荐系统
[奥地利] Dietmar Jannach、Markus Zanker、Alexander Felfernig、Gerhard Friedrich / 蒋 凡 / 人民邮电出版社 / 2013-6-25 / 59.00元
编辑推荐: 通过对本书的学习,读者不仅可以全面系统地了解该领域的基础原理,还能试验如何搭建一套真正的推荐系统。 —— 百度主任架构师、百度技术委员会主席 廖若雪 本书比较全面地介绍了推荐系统涉及的相关知识点,很适合对于推荐系统感兴趣的相关人员作为入门教程,目前能够系统全面介绍相关技术的中文书籍还显得匮乏,相信这本译著对于缓解这种情况大有裨益。 ——新浪微博数据挖掘技术专家 ......一起来看看 《推荐系统》 这本书的介绍吧!