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

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 < right:
        if str[left] != str[right]:
            return False
        left += 1
        right -= 1
    return True
    

judge("abba")

此专栏文章是专门针对 Python 0基础小白所准备的每日一道经典练习题,觉得不错的话,欢迎订阅!

读者福利

如果你是0基础,想要学习Python的话,可以试试我整理的这份Python全套学习资料,0基础入门+进阶实战,学完就可以自己在网上帮人写写脚本,接单赚米了~

需要的可以自行扫描下方SCDN官方认证二维码免费领取

资料包括:Python永久使用安装包、Python web开发,Python爬虫,Python数据分析,人工智能、机器学习、大厂面试题、Python练习题、Python实战案例源码等学习教程。带你从零基础到精通!

学习资源推荐

除了上述分享,如果你也喜欢编程,想通过学习Python获取更高薪资,这里给大家分享一份Python学习资料。

这里给大家展示一下我进的兼职群和最近接单的截图

兼职群

私单

😝朋友们如果有需要的话,可以V扫描下方二维码联系领取,也可以内推兼职群哦~

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

### 1.Python学习路线

image-20230619144606466

python学习路线图1

2.Python基础学习
01.开发工具

02.学习笔记

在这里插入图片描述

03.学习视频

在这里插入图片描述

3.Python小白必备手册

图片

4.数据分析全套资源

在这里插入图片描述

5.Python面试集锦
01.面试资料

在这里插入图片描述

在这里插入图片描述

02.简历模板

在这里插入图片描述

因篇幅有限,仅展示部分资料,添加上方即可获取👆

------ 🙇‍♂️ 本文转自网络,如有侵权,请联系删除 🙇‍♂️ ------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值