Python中字符串的最大公约数

假设有两个字符串A和B。可以说当A通过一次或多次串联创建A时,A可被B整除。因此,如果A =“ abcabc”,而B =“ abc”,则A可被B整除。在本节中,我们将看到字符串的最大公约数是什么。因此,返回将两个字符串分开的最大字符串。因此,如果两个字符串分别是“ ABABAB”和“ ABAB”,则GCD将为“ AB”

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

  • temp:= A和B之间的较短字符串

  • m:=温度长度

  • x:= 1

  • res是一个数组,在“ res”中插入“”

  • 而A和B的子字符串大小为x,则将该子字符串添加到res中,并将x增大1

  • 最后返回res数组中的最后一个元素。

示例

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

class Solution(object):
   def gcdOfStrings(self, str1, str2):
      if len(str1)<=len(str2):
         temp = str1
      else:
         temp = str2
      m = len(temp)
      x = 1
      res=[""]
      while x<=m:
         if m%x==0 and temp[:x] * (len(str1)//x) == str1 and temp[:x] * (len(str2)//x) == str2:
            res.append(temp[:x])
         x+=1
      return res[-1]
ob1 = Solution()print(ob1.gcdOfStrings("ABABAB","ABAB"))

输入项

"ABABAB"
"ABAB"

输出结果

AB