四时宝库

程序员的知识宝库

一文了解Python中检查字符串是否是回文的多种方法

回文指正读和反读都相同的字符序列,如果反转字符串中的字符顺序,字符串保持不变。如“abcba”、“12321”等。


使用Python的切片方法检查字符串是否为回文
我们可以通过反转原始字符串,并将原始字符串的每个元素与反转后字符串的每个元素进行比较,来检查字符串是否是回文。这种方法可以通过切片来完成。下面的程序向我们展示了使用切片方法检查字符串是否是回文。

str1=input("请输入:")
if str1==str1[::-1] :
    print(str1,"是回文")
else:
    print(str1,"不是回文")

使用上面代码中的切片方法检查了字符串是否是回文,其中,字符串切片str1[i:j:s],当i缺失时,默认为0;当j缺失时,默认为len(str1)字符串长度;str1[::-1]相当于str1[-1:-len(a)-1:-1],也就是从最后一个元素开始到第一个元素,即字符串倒序。


使用Python的reversed()函数检查字符串是否为回文

reversed()函数接受一个序列,并返回该序列的反向迭代器。对于字符串,可以使用该函数来反转字符串中的字符序列。然后,与原始字符串比较,以确定它是否是回文。以下程序演示了如何使用函数检查字符串是否为回文。

str1=input("请输入:")
if str1=="".join(reversed(str1)):
    print(str1,"是回文")
else:
    print(str1,"不是回文")

上面程序中的reversed()函数对字符串反转迭代,用"".join()连接为字符串,与原始字符串进行对比,检查字符串是否是回文。


使用枚举法检查字符串是否为回文

#自定义函数
def huiwen(str):
	#对字符串从两端循环对比
	for i in range(0, int(len(str)/2)):
		if str[i] != str[len(str)-i-1]:
			return False
	return True

s=input("请输入:")

if huiwen(s):
	print("是回文!")
else:
	print("不是回文!")

遍历字符串中的每一个字符,倒序生成新字符串,然后对比是否为回文。

s1=input("请输入:")
s2=""
for i in s1:
    s2=i+s2

if s1==s2:
    print("是回文!")
else:
    print("不是回文!")

感谢阅读,关注我,精彩继续!

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接