可以通过在Python中顺时针移动字符来检查一个字符串的程序转换为其他字符串

假设我们有两个字符串p和q,还有一个数字r,我们必须检查是否可以通过最多将r个字符顺时针移位将p转换为q。因此,例如,可以使用2个顺时针移位将“ c”转换为“ e”。

因此,如果输入像p =“ abc”,q =“ ccc”,r = 3,那么输出将为True,因为我们可以通过使用2个顺时针移位将“ a”转换为“ c”,然后将“通过使用1顺时针移位将b“转换为” c“,总共进行3个移位。

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

  • 如果a的大小与b的大小不同,则

    • 返回False

  • 如果k与0相同且a与b不相同,则

    • 返回False

  • su:= 0

  • 对于介于0到a大小的i,执行

    • 返回False

    • su:= su + v + 26

    • su:= su + v

    • v:= b [i]的ASCII-a [i]的ASCII

    • 如果v> = 0,则

    • 除此以外,

    • 如果su> k,则

    • 返回True

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

    示例

    class Solution:
       def solve(self, a, b, k):
          if len(a) != len(b):
             return False
          if k == 0 and a != b:
             return False
             su=0
             for i in range(len(a)):
                v = ord(b[i])- ord(a[i])
                if v>=0:
                   su+=v
                else:
                   su+=v+26
                if su>k:
                   return False
             return True
    ob = Solution()print(ob.solve("abc", "ccc", 3))

    输入项

    "abc", "ccc", 3

    输出结果

    True
    猜你喜欢