检查Python中是否可以通过旋转另一个字符串两次得到一个字符串


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

因此,如果输入像s = "kolkata" t = "takolka",则输出将为True,因为我们可以将"takolka"向左旋转两次以获得"kolkata"。

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

  • 如果s的长度与t的长度不同,则
    • 返回False
  • 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相同),则返回true,否则返回false

让我们看看下面的实现以更好地理解:

示例

在线演示

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

更新于:2020-12-29

230 次浏览

启动你的职业生涯

完成课程获得认证

开始学习
广告