【Python每日一练】003:判断回文字符

您所在的位置:网站首页 python判断回文字符 【Python每日一练】003:判断回文字符

【Python每日一练】003:判断回文字符

2023-06-13 05:56| 来源: 网络整理| 查看: 265

文章目录 1、问题描述2、思路分析2.1 回文是什么?2.2 初步想法:首尾对比2.3 回文字符的形式 3、代码实现方法1-for循环方法2-while循环 读者福利零基础Python学习资源介绍一、Python所有方向的学习路线二、Python学习软件三、Python入门学习视频四、Python练习题五、Python实战案例六、Python面试资料七、资料领取

1、问题描述

给定一个长度为 n 的字符串,请编写一个函数判断该字符串是否回文。如果是回文请返回true,否则返回false。

2、思路分析 2.1 回文是什么?

回文:字符串正序与逆序一致,如abba,level均称为回文

2.2 初步想法:首尾对比

前后对比,相同则进行下一个字符串对比,直至比对完所有字符,否则返回False。

如果需要前后一起对比,则需要双指针,也就是两个变量,一前一后。定义两个变量,一个从左边开始,命名为left,一个从右边开始,命名为right。

我们需要根据字符的索引来取字符串中的每个字符,索引从0开始,那么left首先赋值0,而right取字符串代表最后一个索引则是len(str)- 1。

指针:left right 字符串:a b b a 索引:0 1 2 3=len(str)-1=4-1 #定义双指针变量 str = "abba" left = 0 right = len(str) - 1 2.3 回文字符的形式

我们可以将回文形式简单分为三种情况,一种是1个字符;一种是偶数,如abba;一种是奇数,如level。根据不同的形式,我们可以判断循环停止的条件。通过以下三种情况的分析,回文双指针循环判断停止的条件则为当left>=right时就停止判断。

1个字符:一开始left == right 偶数:首尾指针相遇后,左指针left + 1,right - 1后,left > right 奇数:最后一个字符left == right 3、代码实现 方法1-for循环

由于需要从头部和尾部同时比对,直至比对完成,需要使用循环,循环则有for,while。

使用for循环如下:

def judge(str): left = 0 right = len(str) - 1 for i in range(int(len(str)/2)+1): if str[left] != str[right]: return False left += 1 right -= 1 if left >= right: break return True judge("abba") 方法2-while循环

当left 小于 right则继续比对,若是等于,如1个字符以及奇数最后一个相等时,则直接返回True。

def judge(str): left = 0 right = len(str) - 1 while left


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3