
LeetCode125.验证回文串Golang版
把字符串转为字节数组,并把字符数组处理成只含有字母和数字 使用首尾双指针,进行回文串的识别
发布日期:2021-05-08 06:09:46
浏览次数:26
分类:精选文章
本文共 831 字,大约阅读时间需要 2 分钟。
LeetCode125.验证回文串Golang版
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。空字符串定义为有效的回文串。
思路
分析题目,拿到的是一个字符串,需要先把字符串处理成只含有字母(ASCII码小写97~122和大写65~90)和数字(ASCII码 65~90)。然后使用首尾双指针,进行回文串的识别。
注意:这里介绍一种通过位运算,进行大小写字母转换的方法。
代码
func isPalindrome(s string) bool { sByte := []byte(s) index := 0 for i := 0; i < len(sByte); i++ { // 处理大小写,将大写字母转换为小写字母 sByte[i] = sByte[i] | 32 // 筛选字母和数字 if (sByte[i] >= 97 && sByte[i] <= 122) || (sByte[i] >= 48 && sByte[i] <= 57) { sByte[index] = sByte[i] index++ } } // 处理后的字符串长度 k := index - 1 for j := 0; j < k; j++ { if sByte[j] != sByte[k] { return false } k-- } return true}
代码解释:首先将字符串转换为字节数组,并使用位运算将大写字母转换为小写字母。然后筛选出字母和数字,构建处理后的字符串。接着使用首尾双指针检查是否是回文串。
发表评论
最新留言
不错!
[***.144.177.141]2025年04月10日 18时59分13秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Java 知识点总结篇(2)
2019-03-05
Python 知识点总结篇(2)
2019-03-05
Python 知识点总结篇(3)
2019-03-05
Numpy 如何操作数组
2019-03-05
爬取网易科技滚动新闻
2019-03-05
vuex modules
2019-03-05
Java笔记:单链表
2019-03-05
phthon基本语法——温习
2019-03-05
sleep、wait、yield、join——简介
2019-03-05
web项目配置
2019-03-05
VTK:Medical之MedicalDemo2
2019-03-05
c语言(基本数据类型)实参与形参传值 用汇编理解
2019-03-05
基于单片机可控音乐流水灯控制设计-全套资料
2019-03-05
基于单片机简易信号误差分析设计-全套资料
2019-03-05
基于单片机简易脉搏测量仪系统设计-毕设课设资料
2019-03-05
并发框架下的“基础类型”——浅析基本类型、ThreadLocal、原子类的线程安全机制
2019-03-05
VHDL代码风格
2019-03-05
图像处理系列1.skimage
2019-03-05
Object Clone
2019-03-05