ধরা যাক একটি স্ট্রিং আছে, এটি রিপিটিং স্ট্রিং (যে কোনো সাবস্ট্রিং একাধিকবার রিপিট হয়েছে) কিনা যাচাই করতে হবে।
উদাহরণ: string = "helloworldhelloworld" হলে আউটপুট True।
সমাধানের ধাপসমূহ
- n := len(s)
- findFactors(n) ফাংশন: n-এর সব ফ্যাক্টর সেটে রিটার্ন করুন।
- প্রতিটি ফ্যাক্টর i-এর জন্য (i != n): ss = s[:i], val = s.count(ss)। যদি val == n/i হয়, True ফেরত দিন।
- 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