Python 中的回文程序

Python 中的回文程序是什么?

回文可以定义为在反转位置时显示相同值的字符串或数字。简而言之,它在反转时不会改变。

Example: deed, 101

当反转的单词和实际的单词(数字或字符串)进行比较时,它们会产生相同的结果。

Palindrome in Python

回文的类型

Python 语言中,回文有三种类型,如下所示:

  • 多词回文:这是多个单词的组合,其中原始单词和反转单词的值相同。
  • 单字回文:这是一个单词,其中原始单词和反转单词的值相同。
  • 数字回文:这是一个数字,其中原始数字和反转数字的值相同。给定的输入无论从前面还是从后面看都保持不变。

Python 中回文数的算法

可以应用以下算法来检查回文数:

步骤 1)执行变量声明为‘I’并读取变量。

步骤 2)将‘I’分配给临时变量 j。 i=j

步骤 3)使用如下指令执行循环: –

  • M=I % 10
  • L=L x 10 + M
  • I = I / 10

步骤 4)比较临时变量和 l。 L==J。

步骤 5)如果满足条件,则打印该数字为回文。

步骤 6)如果不满足条件,则打印该数字不是回文。

步骤 7)结束

上述算法适用于 Python 中的回文数。

方法 1:使用反向切片在 Python 中查找回文数

Python 中的反向切片通常涉及使用原始程序的子集语句。子集语句也可以使用循环。Python 的回文程序可以进行反向切片。

以下 Python 程序使用反向循环来确定字符串是否为回文。

Python 代码中的回文字符串程序

a='deed'
lena=len(a)
b=[]
for i in range(lena - 1, -1, -1):
    b.append(a[i])
rev = "".join(b)
print(a + " is: ", end="")
if a == rev:
    print("Palindrome")
else:
    print("Not Palindrome")

输出

deed is: Palindrome

代码解释

  • Python 代码尝试使用字符串的长度和 Python 的 range 函数以相反的顺序附加空字符串 b。
  • 然后使用字符串分隔符**“**将字符串 b 与空字符串 rev 连接起来。

方法 2:使用标志在 Python 中查找回文程序

可以在 Python 中定义标志变量来标识回文。标志初始化为 0。以下程序说明了标志参数的使用

Python 中回文程序的代码

Pld = "deed"
m = -1
flag = 0
for char in Pld:
    if char != Pld[m]:
        flag = 1
        break
    m = m - 1
print(Pld + " is: ", end="")
if flag:
    print("Not Palindrome")
else:
    print("Palindrome")
print(flag)

输出

deed is: Palindrome

0

代码解释

  • Python 中的字符从 0 索引开始。
  • 由于 m 初始化为 -1,因此字符串从反向读取,使用负索引。
  • 带有 if 语句的 for 循环检查字符串中的每个字符(从索引 0 开始)是否与字符串的反向索引匹配。
  • 但是,如果不匹配,则程序将标志初始化为 1;否则,它将初始化为 0。

方法 3:通过反转字符检查 Python 中的回文

在此 Python 回文程序中使用 char 方法来反转字符串。将原始字符串与反转字符串进行比较,以确定字符串是否为回文。

Python 回文程序代码

Base = "123"
reverse = ""
for char in Base:
    reverse = char + reverse
print("Palindrome") if Base == reverse else print("Not Palindrome")
print("Original string is: " + str(Base))
print("reverse string is: " + str(reverse))
Base = "101"
reverse = ""
for char in Base:
    reverse = char + reverse
print("Palindrome") if Base == reverse else print("Not Palindrome")
print("Original string is: " + str(Base))
print("reverse string is: " + str(reverse))
Base = "deed"
reverse = ""
for char in Base:
    reverse = char + reverse
print("Palindrome") if Base == reverse else print("Not Palindrome")
print("Original string is: " + str(Base))
print("reverse string is: " + str(reverse))

输出

Not Palindrome
The original string is: 123
The reverse string is: 321
Palindrome
The original string is: 101
The reverse string is: 101
Palindrome
The original string is: the deed
The reverse string is: the deed

代码解释

  • Python 的 str 函数有助于将数值格式转换为字符串格式。该程序首先检查值 123 是否为回文。
  • 然后它会检查值 101 和字符串值 deed。
  • 该代码检查数值和字符串格式的值是否为回文。

方法 4:如何使用字符匹配在 Python 中检查回文

在此回文方法中,程序使用 for 循环、range 函数和 Len 函数检查字符串中的每个字符是否与反转字符串匹配。

Python 代码

def PalindromeComparator(original):
    for i in range(0, len(original)):
        if original[i] != original[len(original) - i - 1]:
            return False
            return True
Base = "deed"
print("Palindrome") if PalindromeComparator(Base) else print("Not Palindrome")

输出

Not Palindrome

代码解释

  • 一个名为 Palindrome Comparator 的用户定义函数会检查该值是否为字符串。
  • 程序使用**标准 original[i]!= original[len(original) – i – 1]**比较原始字符串和原始字符串的反转。
  • 上述程序利用长度技术确定字符串的长度。

方法 5:使用递归在 Python 中查找回文

在 Python 中,递归意味着函数会根据特定的标准反复调用自身。这样,问题就可以使用相同的函数结构分解为更小的部分。通过使用递归编程逻辑,也可以检查回文字符串。

Python 代码

def palcomprec(number, oppo):
    if number == 0:
        return oppo
    remainder = int(number % 10)
    oppo = (oppo * 10) + remainder
    return palcomprec(int(number / 10), oppo)
Base = 12321
reverse = 0
reverse = palcomprec(Base, reverse)
print(str(Base) + " is: ", end="")
print("Palindrome") if reverse == Base else print("Not Palindrome")

输出

12321 is: Palindrome

代码解释

  • 该程序使用一个用户定义的函数,该函数会递归地调用自身。
  • 原始数字被分解,其剩余值被加到相反的值上。
  • 在加到余数之前,相反的值首先乘以 10。

方法 6:如何使用 While 循环检查回文

while 循环迭代执行代码,直到应用的条件为真。

  • 可以使用迭代方法检查整数值是否为回文。
  • Python 程序使用临时数字和模运算符。

Python 代码

original = 101
temporary = original
reverse = 0
while temporary > 0:
    remainder = temporary % 10
    reverse = (reverse * 10) + remainder
    temporary = temporary // 10
if original == reverse:
  print('Palindrome')
else:
  print("Not Palindrome")

输出

Palindrome

代码解释

  • 程序使用一个 while 循环,该循环检查临时数字是否小于零。
  • 模运算符计算原始数字的余数。
  • 原始数字除以 10。
  • 反向参数通过乘以 10 来计算。
  • 结果数字加到余数中。
  • 上述程序将原始数字和反转数字进行比较,以将其分类为回文或非回文。

结论

  • 回文是一个值,当从后向前比较时,其结果相同。它用于各种数学谜题。
  • 在 Python 中,可以使用多种方法来比较值是否为回文。使用的技术包括:反向切片、字符匹配、递归、循环的使用、rev、Len 和 str 函数、预定义函数、递归等。