题目描述:

题目描述

字符串旋转:
给定两字符串A和B,如果能将A从中间某个位置分割为左右两部分字符串(都不为空串),并将左边的字符串移动到右边字符串后面组成新的字符串可以变为字符串B时返回true。
例如:如果A=‘youzan’,B=‘zanyou’,A按‘you’‘zan’切割换位后得到‘zanyou’和B相同返回true。

输入描述:

2个不为空的字符串(说明:输入一个字符串以英文分号";"分割为2个字符串)
例如:youzan;zanyou 即为A=‘youzan’,B=‘zanyou’

输出描述:

输出true或false(表示是否能按要求匹配两个字符串)
示例1

输入

复制
youzan;zanyou

输出

复制
true
示例2

输入

复制
youzan;zyouan

输出

复制
false

解题思路:

双指针

完整代码:

a, b = input().split(';')

def calc(a, b):
  if len(a) != len(b):
    return False
  else:
    i = 0
    j = 1
    while j < len(a):
      if (a[j + 1:] + a[i: j + 1]) == b:
        return True
      j += 1
    return False
if calc(a, b):
  print('true')
else:
  print('false')