文章目录
- 1、问题描述
- 2、思路分析
- 3、代码实现
- 读者福利
- 学习资源推荐
- ](https://blog.csdn.net/Java_ZZZZZ/article/details/135478862?spm=1001.2014.3001.5501)[2.Python基础学习
- ](https://blog.csdn.net/Java_ZZZZZ/article/details/135478862?spm=1001.2014.3001.5501)[3.Python小白必备手册
- ](https://blog.csdn.net/Java_ZZZZZ/article/details/135478862?spm=1001.2014.3001.5501)[4.数据分析全套资源
- ](https://blog.csdn.net/Java_ZZZZZ/article/details/135478862?spm=1001.2014.3001.5501)[5.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 < 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学习资料。
这里给大家展示一下我进的兼职群和最近接单的截图
![私单](https://i-blog.csdnimg.cn/blog_migrate/0d6d3829a1e8a78729fbb96ed6d4c666.png)
😝朋友们如果有需要的话,可以V扫描下方二维码联系领取,也可以内推兼职群哦~
学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
### 1.Python学习路线
2.Python基础学习
01.开发工具
02.学习笔记
03.学习视频
3.Python小白必备手册
4.数据分析全套资源
5.Python面试集锦
01.面试资料
02.简历模板
因篇幅有限,仅展示部分资料,添加上方即可获取👆
------ 🙇♂️ 本文转自网络,如有侵权,请联系删除 🙇♂️ ------