回文程序 Python

⚡ 智能摘要

回文程序 Python 检查字符串或数字正读反读是否相同。常用的方法包括反向切片、标志位比较、字符反转、字符匹配、递归以及while循环等技术,这些方法适用于文本和数值。

  • 🔁 定义: 回文是指正读反读都一样的数,无论是单词还是数字。
  • ✂️ 切片和标记: Reverse 使用循环遍历字符串,或者使用标志提前捕获不匹配项。
  • 🔄 递归和循环: 递归调用和 while 循环使用取模和整数除法反转数字。
  • 高效: 双指针法在 O(n) 时间和 O(1) 空间内从内比较两端。
  • 🤖 人工智能相关性: 回文逻辑有助于自然语言处理预处理、DNA检测和机器学习面试练习。

回文程序 Python

回文程序 Python?

回文可以定义为一个字符串或数字,当其位置反转时,显示相同的值。简单来说,就是反转后保持不变。

Example: deed, 101

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

回文的类型

In Python language,回文有三种类型,如下所列:

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

回文数的算法 Python

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

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

步骤2) 分配 'I' 到临时变量 j。i=j

步骤3) 按照如下所示的指令执行循环:-

  • M=I%10
  • L=L x 10 + M
  • 我=我/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

Code 说明:

  • 此 Python 代码尝试使用主字符串的长度和 Python 范围函数。
  • 然后使用字符串分隔符将字符串 b 与空字符串 rev 连接起来 .

方法 2:回文程序 Python 使用标志

标志变量可以在 Python 识别回文。Flag 初始化为 0。以下程序说明了 flag 参数的用法:

Python Code 回文程序:

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

Code 说明:

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

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

char 方法用于反转此回文程序中的字符串 Python. 将原始字符串与反向字符串进行检查,以确定该字符串是否为回文。

Python 回文程序 Code:

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

Code 说明:

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

方法 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

Code 说明:

  • 标记为回文比较器的用户定义函数检查该值是否是字符串。
  • 该程序使用以下标准比较原始字符串及其反转字符串。 original[i]!= original[len(original) – i – 1].
  • 上述程序利用长度技术来确定字符串的长度。

方法 5:回文 Python 使用递归

In 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

Code 说明:

  • 该程序使用递归调用自身的用户定义函数。
  • 将原数分解,将其余值加到相反数上。
  • 先将相反值乘以 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

Code 说明:

  • 该程序利用 while 循环检查临时数字是否小于零。
  • 模运算符计算原始数字的余数。
  • 将原始数字除以 10。
  • 反向参数是乘以10来计算的。
  • 将结果数字添加到残差中。
  • 上述程序检查原始数字和反向数字,以将其分类为回文或不是。

常见问题

使用 `s == s[::-1]` 将当前值与其反转值进行比较,首先使用 `str()` 将数字转换为反向字符串。方向一致则表示该值为回文。

双指针方法在时间复杂度为 O(n)、空间复杂度为 O(1) 时可以节省内存,然而在 C 语言中,切片反转通常是最快的。Python.

一根指针从开头,一根指针从结尾;它们从内向外比较。匹配的指针对直到相遇,即可确认这是一个回文。

使用 isalnum() 将文本转换为小写,并仅保留字母数字字符,然后与其反转后的结果进行比较。空格和大小写不再重要。

Reverse 使用切片 s[::-1]、reversed() 加上“”.join() 或前置循环对字符串进行比较,然后将其与原始字符串进行比较。

是的。单个字符和空字符串反过来读是一样的,所以 s == s[::-1] 返回 True。

Rev逻辑驱动自然语言处理预处理、生物信息学DNA检测和特征工程。诸如此类的库 NumPy的 将这些对称性测试向量化,以便进行机器学习。

是的。GitHub Copilot 和类似的 AI 助手可以根据提示生成切片、双指针、递归或循环版本。务必先检查边界情况。

总结一下这篇文章: