Дано: строка s, проверьте, можно ли ее воспроизвести, взяв подстроку, умноженную N раз. Пример:
Строка: s = "abab"
Ответ: true
Пояснения: Это дважды подстрока "ab".
Пример 2:
Строка: s = "aba"
Ответ: false Ограничения:
1 <= s.length <= 10^4
s состоит из строчных английских букв. Решения: 1) Сравнения в цикле Одинаковые решение, от менее оптимального, к более оптимальному: ver1. class Solution:
def repeatedSubstring(self, s: str) -> bool:
repeat = ''
for i in range(len(s) // 2):
repeat += s[i]
if len(s) % len(repeat) == 0:
if repeat * (len(s) // len(repeat)) == s:
return True
return False
ver 2 upd:
class Solution:
def repeatedSubstringPattern(self, s: str) -> bool:
for i in range(1, len(s) // 2 + 1):
if len(s) % i == 0 and s[:i] * (len(s) // i) == s:
return True
return False Мы перебираем все возможные длины подстрок (от 1 до