Python 程序检查给定字符串是否为回文

编写一个 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")
Python Program to Check a Given String is Palindrome or 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.