电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

Python實(shí)現(xiàn)"驗(yàn)證回文串"的幾種方法

瀏覽:135日期:2022-06-23 18:40:32
一、LeetCode——125.驗(yàn)證回文串1.問題描述

給定一個(gè)字符串,驗(yàn)證它是否是回文串,只考慮字母和數(shù)字字符,可以忽略字母的大小寫。

說明:本題中,我們將空字符串定義為有效的回文串。

2.示例

示例 1:輸入: “A man, a plan, a canal: Panama”輸出: True

示例 1:輸入: “race a car”輸出: False

示例 3:輸入: “!!!”輸出: True

二、解題分析

在排除空格及特殊字符的前提下,且不考慮字母大小寫,字符串前后元素一一相同.在字符串為空或只有一個(gè)字符時(shí),應(yīng)該返回True字符串的元素全部是符號是應(yīng)該返回True

三、解題思路及代碼實(shí)現(xiàn)

方法一:字符串切片

創(chuàng)建一個(gè)空字符串s_new,通過遍歷字符串s,將字符串s中的字母和數(shù)字,拼接到s_new中,通過比較s_new[::-1] 和s_new得出結(jié)論。【字符串為有序的數(shù)據(jù)結(jié)構(gòu),可以對其進(jìn)行切片操作】代碼如下:

class Solution(object): def isPalindrome(self, s): ''' :type s: str :rtype: bool ''' # 創(chuàng)建一個(gè)空字符串 s_new = ’’ # 遍歷字符串s for i in s: # 判斷,如果是字母或數(shù)字,將其轉(zhuǎn)為小寫拼接到字符串中 if i.isalnum():s_new += i.lower() # 切片后s_new[::-1]與s_new比較,并將結(jié)果返回 return s_new[::-1] == s_new方法二:雙游標(biāo)判斷

從字符串s兩端指定兩個(gè)游標(biāo)low,high如果low游標(biāo)指向了 非字母和數(shù)字(即空格和符號),那么low游標(biāo)往后移一位;如果high游標(biāo)指向了 非字母和數(shù)字(即空格和符號),那么high游標(biāo)往前移一位;直至low和high都指向了數(shù)字或字母,此時(shí)進(jìn)行比較,是否相同。如果比較的結(jié)果是True,則low往后移一位,high往前移一位如果比較的結(jié)果是False,則直接返回False重復(fù)上述判斷,直至low和high重合,此時(shí)表示完成了字符串s內(nèi)前后元素的一一對比判斷,返回True即可。

代碼如下:

class Solution(object): def isPalindrome(self, s): ''' :type s: str :rtype: bool ''' low = 0 high = len(s) - 1 #在字符串為空或只有一個(gè)字符時(shí),返回True if len(s) <= 1: return True # 設(shè)定low和high對比的條件 while low < high: # 如果不是字母或數(shù)字,low往后移一位【low < high為必須條件,不然會造成索引越界】 while not s[low].isalnum() and low < high:low += 1 # 如果不是字母或數(shù)字,high往前移一位 while not s[high].isalnum() and low < high:high -= 1 # 判斷:如果相同,繼續(xù)下一次對比;如果不相同,直接返回False if s[low].lower() == s[high].lower():low += 1high -= 1 else:return False # low和high重合,即退出循環(huán),表示前后都是一一對應(yīng)的,返回True return True四、總結(jié)

以上就是今天的解題,此題目從字符串切片的解題方式來看,考察了我們對字符串常見功能的掌握情況,而雙游標(biāo)的角度來看,主要考察了我們對游標(biāo)這一工具的靈活運(yùn)用,相信大家在學(xué)習(xí)基礎(chǔ)算法——快速排序時(shí),會再次遇到雙游標(biāo),而快速排序可以說是相當(dāng)于在本文核心代碼的基礎(chǔ)上再嵌套一層外層循環(huán)。

補(bǔ)充:其他方法

1:首先將字符串大寫字母轉(zhuǎn)為小寫字母,然后去掉字符串中非字母和數(shù)字的其它字符,翻轉(zhuǎn)對比輸出結(jié)果(時(shí)間復(fù)雜度O(n))

def isPalindrome(self, s): ''' :type s: str :rtype: bool ''' s = s.lower() alphanumeric = [’a’,’b’,’c’,’d’,’e’,’f’,’g’,’h’,’i’,’j’,’k’,’l’,’m’,’n’,’o’,’p’,’q’,’r’,’s’,’t’,’u’,’v’,’w’,’x’,’y’,’z’,’0’,’1’,’2’,’3’,’4’,’5’,’6’,’7’,’8’,’9’] newStr = '' for i in s: if i in alphanumeric:newStr += i return newStr==newStr[::-1]

2:str.lower()+str.isalnum()(時(shí)間復(fù)雜度O(n))

def isPalindrome(self, s): ''' :type s: str :rtype: bool ''' s = s.lower() newStr = '' for i in s: if i.isalnum():newStr += i return newStr==newStr[::-1]

3:引入re模塊(正則表達(dá)式),re.sub()

def isPalindrome(self, s): ''' :type s: str :rtype: bool ''' s = s.lower() import re s = re.sub(’[^a-z0-9]’, '', s) return s==s[::-1]

到此這篇關(guān)于Python實(shí)現(xiàn)'驗(yàn)證回文串'的幾種方法的文章就介紹到這了,更多相關(guān)Python 驗(yàn)證回文串內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 水环真空泵厂家,2bv真空泵,2be真空泵-淄博真空设备厂 | SRRC认证_电磁兼容_EMC测试整改_FCC认证_SDOC认证-深圳市环测威检测技术有限公司 | 【法利莱住人集装箱厂家】—活动集装箱房,集装箱租赁_大品牌,更放心 | 西门子伺服电机维修,西门子电源模块维修,西门子驱动模块维修-上海渠利 | 淬火设备-钎焊机-熔炼炉-中频炉-锻造炉-感应加热电源-退火机-热处理设备-优造节能 | 书法培训-高考书法艺考培训班-山东艺霖书法培训凭实力挺进央美 | 吹塑加工_大型吹塑加工_滚塑代加工-莱力奇吹塑加工有限公司 | 软瓷_柔性面砖_软瓷砖_柔性石材_MCM软瓷厂家_湖北博悦佳软瓷 | 带式压滤机_污泥压滤机_污泥脱水机_带式过滤机_带式压滤机厂家-河南恒磊环保设备有限公司 | 磁力抛光机_磁力研磨机_磁力去毛刺机_精密五金零件抛光设备厂家-冠古科技 | 大功率金属激光焊接机价格_不锈钢汽车配件|光纤自动激光焊接机设备-东莞市正信激光科技有限公司 定制奶茶纸杯_定制豆浆杯_广东纸杯厂_[绿保佳]一家专业生产纸杯碗的厂家 | 美能达分光测色仪_爱色丽分光测色仪-苏州方特电子科技有限公司 | 电子书导航网_电子书之家_电子书大全_最新电子书分享发布平台 | 今日娱乐圈——影视剧集_八卦娱乐_明星八卦_最新娱乐八卦新闻 | 外贸网站建设-外贸网站设计制作开发公司-外贸独立站建设【企术】 | 激光内雕_led玻璃_发光玻璃_内雕玻璃_导光玻璃-石家庄明晨三维科技有限公司 激光内雕-内雕玻璃-发光玻璃 | 纸布|钩编布|钩针布|纸草布-莱州佳源工艺纸布厂 | 列管冷凝器,刮板蒸发器,外盘管反应釜厂家-无锡曼旺化工设备有限公司 | 货车视频监控,油管家,货车油管家-淄博世纪锐行电子科技 | 污水提升器,污水提升泵,地下室排水,增压泵,雨水泵,智能供排水控制器-上海智流泵业有限公司 | 全自动过滤器_反冲洗过滤器_自清洗过滤器_量子除垢环_量子环除垢_量子除垢 - 安士睿(北京)过滤设备有限公司 | 金环宇|金环宇电线|金环宇电缆|金环宇电线电缆|深圳市金环宇电线电缆有限公司|金环宇电缆集团 | 双工位钻铣攻牙机-转换工作台钻攻中心-钻铣攻牙机一体机-浙江利硕自动化设备有限公司 | 地源热泵一体机,地源热泵厂家-淄博汇能环保设备有限公司 | 滚筒烘干机_转筒烘干机_滚筒干燥机_转筒干燥机_回转烘干机_回转干燥机-设备生产厂家 | 塑料检查井_双扣聚氯乙烯增强管_双壁波纹管-河南中盈塑料制品有限公司 | 济南铝方通-济南铝方通价格-济南方通厂家-山东鲁方通建材有限公司 | 好看的韩国漫画_韩漫在线免费阅读-汗汗漫画 | 电池高低温试验箱-气态冲击箱-双层电池防爆箱|简户百科 | 济宁工业提升门|济宁电动防火门|济宁快速堆积门-济宁市统一电动门有限公司 | 纯水电导率测定仪-万用气体检测仪-低钠测定仪-米沃奇科技(北京)有限公司www.milwaukeeinst.cn 锂辉石检测仪器,水泥成分快速分析仪-湘潭宇科分析仪器有限公司 手术室净化装修-手术室净化工程公司-华锐手术室净化厂家 | 伺服电机维修、驱动器维修「安川|三菱|松下」伺服维修公司-深圳华创益 | 陶瓷加热器,履带式加热器-吴江市兴达电热设备厂 | 代写标书-专业代做标书-商业计划书代写「深圳卓越创兴公司」 | 不锈钢搅拌罐_高速搅拌罐厂家-无锡市凡格德化工装备科技有限公司 | 山东齐鲁漆业有限公司【官网】-工业漆专业生产厂家 | 行星齿轮减速机,减速机厂家,山东减速机-淄博兴江机械制造 | 万烁建筑设计院-建筑设计公司加盟,设计院加盟分公司,市政设计加盟 | 深圳美安可自动化设备有限公司,喷码机,定制喷码机,二维码喷码机,深圳喷码机,纸箱喷码机,东莞喷码机 UV喷码机,日期喷码机,鸡蛋喷码机,管芯喷码机,管内壁喷码机,喷码机厂家 | 石家庄救护车出租_重症转院_跨省跨境医疗转送_活动赛事医疗保障_康复出院_放弃治疗_腾康26年医疗护送转诊团队 | 绿萝净除甲醛|深圳除甲醛公司|测甲醛怎么收费|培训机构|电影院|办公室|车内|室内除甲醛案例|原理|方法|价格立马咨询 |