假设我们有一个字符串,我们必须检查它是否是重复的字符串。
因此,如果输入类似于string =“ helloworldhelloworld”,则输出将为True
为了解决这个问题,我们将遵循以下步骤-
n:= s的大小
定义一个功能findFactors()
。这将花费n
f:=一个新集合
我:= 1
当我*我<= n时
将(n / i)的商插入f
将我插入f
如果n mod i等于0,则
我:=我+ 1
返回f
从主要方法中,执行以下操作-
事实:= findFactors(n)
实际上,对于每个我,
返回True
进行下一次迭代
如果我和n相同
ss:= s [从索引0到i-1]
val:=在s中出现ss
如果val与(n / i)的商相同,则
返回False
让我们看下面的实现以更好地理解-
class Solution: def solve(self, s): n = len(s) def findFactors(n): f = set() i = 1 while(i * i <= n): if(n % i == 0): f.add(int(n / i)) f.add(i) i+= 1 return f fact = findFactors(n) for i in fact: if(i == n): continue ss = s[:i] val = s.count(ss) if(val == int(n / i)): return True return False ob = Solution()print(ob.solve("helloworldhelloworld"))
"helloworldhelloworld"
输出结果
True