编写一个 Python 程序,通过实际示例检查给定的字符串是否为回文。如果一个字符串在反转后仍然相同,它就是一个回文字符串。
使用切片检查给定字符串是否为回文的程序
此程序允许用户输入一个字符串。接下来,我们使用 If 语句来检查给定的字符串是否等于其反转。如果为 True,则是回文字符串;否则不是。
st[:: – 1] 以反转顺序返回字符串。请参考 字符串 文章以了解 Python 中的所有内容。 Python。
st = input("Please enter your own text : ")
if(st == st[:: - 1]):
print("This is a Palindrome String")
else:
print("This is Not")

使用 for 循环检查给定字符串是否为回文的 Python 程序
在此 Python 程序 中,我们使用 For 循环 迭代字符串中的每个字符。在 For 循环内,我们将每个字符分配给 str1(之前)。接下来,我们使用 If 语句 来检查回文字符串。
string = input("Please enter your own Text : ")
str1 = ""
for i in string:
str1 = i + str1
print("Reverse Order : ", str1)
if(string == str1):
print("This is a Palindrome String")
else:
print("This is Not")
Please enter your own Text : aabbcc
Reverse Order : ccbbaa
This is Not
>>>
Please enter your own Text : aabbaa
Reverse Order : aabbaa
This is a Palindrome String
>>>
这是使用 for 循环查找给定字符串是否为回文的更传统或旧的方法。
string = input("Please enter your own : ")
flag = 0
length = len(string)
for i in range(length):
if(string[i] != string[length - i - 1]):
flag = 1
break
if(flag == 0):
print("This is True")
else:
print("This is Not")
Please enter your own : aabbcbbaa
This is True
>>>
Please enter your own : tutorialgateway
This is Not
使用 while 循环的回文字符串程序
这与上面提到的示例相同,我们用 while 循环替换了 for 循环。
def ispalindrome(s):
i = 0
while i < len(s)/2:
if s[i] != s[-i -1]:
return False
i += 1
return True
st = input("Enter Text = ")
if ispalindrome(st):
print("Palindrome String.")
else:
print("Not.")
Enter Text = dad
Palindrome String.
Enter Text = hello
Not.
使用函数检查回文字符串的程序
在此程序中,for 循环从头到尾迭代字符串。如果 str[i] != str[len(str)-i-1],则检查第一个字符是否等于最后一个字符。如果为 True,则检查第二个字符是否与倒数第二个字符相等,依此类推。
def is_palindrome(str):
for i in range(len(str)):
if str[i] != str[len(str)-i-1]:
return False
return True
str = input("Enter Text = ")
if is_palindrome(str):
print("palindrome")
else:
print("Not")
使用递归检查字符串是否为回文的 Python 程序
在此回文程序中,我们使用 len 函数 来查找字符串长度。接下来,我们使用递归函数来递归调用该函数。
def ispalindrome(str1):
if(len(str1) == 0):
return str1
else:
return ispalindrome(str1[1 : ]) + str1[0]
s = input("Please enter your own : ")
str1 = ispalindrome(s)
print("String in reverse Order : ", str1)
if(s == str1):
print("This is a Palindrome String")
else:
print("This is Not")
Please enter your own : wow
This is a Palindrome String
>>>
Please enter your own : python
This is Not
您也可以写上面的程序
def ispalindrome(str):
if len(str) <= 1:
return True
if str[0] != str[-1]:
return False
return ispalindrome(str[1:-1])
s = input("Please enter your own : ")
if (ispalindrome(s)):
print("It is a Palindrome String")
else:
print("This is Not")
Please enter your own : mom
It is a Palindrome String
使用 functools reduce 函数
下面所示的回文字符串程序从 functools 库导入 reduce 函数,并使用 lambda 和 reversed 函数。
from functools import reduce
def ispalindrome(s):
return reduce(lambda x, y: x + y, reversed(s)) == s
st = input("Enter Text = ")
if ispalindrome(st):
print("Palindrome String.")
else:
print("Not.")
Enter Text = mom
Palindrome String.
使用 collections deque
from collections import deque
def ispalindrome(s):
dq = deque(s)
while len(dq) > 1:
if dq.popleft() != dq.pop():
return False
return True
st = input("Enter Text = ")
if ispalindrome(st):
print("Palindrome String.")
else:
print("Not.")
Enter Text = radar
Palindrome String.
Enter Text = car
Not.