检查是否可以通过在 Python 中将另一个字符串旋转 2 个位置来获得字符串

假设我们有两个字符串 s 和 t。我们必须检查是否可以通过向左或向右任意方向旋转 t 两个位置来获得 s。

因此,如果输入类似于 s = "kolkata" t = "takolka",那么输出将为 True,因为我们可以将 "takolka" 向左侧旋转两次以获得 "kolkata"。

为了解决这个问题,我们将按照以下步骤操作 -

  • 如果 s 的大小与 t 的大小不同,则

    • 返回错误

  • right_rot := 空字符串

  • left_rot := 空字符串

  • l := t 的大小

  • left_rot := left_rot 连接 t[从索引 l - 2 到结束] 连接 t[从索引 0 到 l - 3]

  • right_rot := right_rot 连接 t[从索引 2 到结尾] 连接 t[从索引 0 到 1]

  • 当(s 与 right_rot 相同或 s 与 left_rot 相同)时返回真,否则为假

让我们看看以下实现以获得更好的理解 -

示例

def solve(s, t):
   if (len(s) != len(t)):
      return False
   right_rot = ""
   left_rot = ""
   l = len(t)
   left_rot = (left_rot + t[l - 2:] + t[0: l - 2])
   right_rot = right_rot + t[2:] + t[0:2]
   return (s == right_rot or s == left_rot)
s = "kolkata"
t = "takolka"
print(solve(s, t))

输入

"kolkata", "takolka"
输出结果
True

猜你喜欢