使用Python拆分两个字符串以形成回文程序

使用Python拆分两个字符串以形成回文程序

假设我们有两个长度相同的字符串a和b。我们必须选择一个索引并在该选择的索引处拆分两个字符串,将a拆分为两个字符串:a_pref和a_suff,其中a = a_pref | a_suff,并将b拆分为两个字符串:b_pref | b_suff(|是连接运算符)其中b = b_pref + b_suff。检查a_pref + b_suff或b_pref + a_suff是否形成回文(任何分割都可能是空字符串)

所以,如果输入是a =“pqrst”b =“turqp”,那么输出将是True,因为我们可以像[“ pq”,“ rst”]这样拆分a,而且b像[“ tu”,“ rqp”],因此如果我们将a_pref与b_suff连接,我们将得到“pqrqp”,这是一个回文。

为了解决这个问题,我们将遵循以下步骤−

  • 对于每对(x,y)从[(a,b),(b,a)]的对列表中,执行以下操作
    • i:=0,j:=x的大小-1

    • 当x [i]与y [j]相同时且i<x的大小且j> 0时,执行以下操作

      • i:=i + 1

      • j:= j-1

    • midx:=从索引i到j的x的子字符串

    • midy:=从索引i到j的y的子字符串

    • 如果midx是回文或midy是回文,则

      • 返回True
  • 返回False

示例

让我们查看以下实现以更好地理解−

def solve(a, b):
   for x, y in [[a, b], [b, a]]:
      i, j = 0, len(x) - 1
      while x[i] == y[j] and i<len(x) and j>0:
         i += 1
         j -= 1
      midx = x[i:j+1]
      midy = y[i:j+1]
      if (midx == midx[::-1] or midy== midy[::-1]):
         return True
   return False

a = "pqrst"
b = "turqp"
print(solve(a, b))

输入

"pqrst","turqp"

产量

True

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程