3027. Циклический сдвиг строки
Easy
3 решили
Даны две строки
Циклический сдвиг строки на
•
•
•
•
Верните
Если длины
s и goal из строчных латинских букв (могут быть пустыми).Циклический сдвиг строки на
k позиций — это когда первые k символов отрезают слева и приписывают в конец (остальные символы сдвигаются влево). Например, для s = "abcde":•
k = 0 → "abcde" (без изменений);•
k = 1 → "bcdea";•
k = 2 → "cdeab";•
k = 5 → снова "abcde" (полный оборот).Верните
true, если существует такое k (включая 0), что после циклического сдвига s получается ровно goal. Иначе верните false.Если длины
s и goal разные — ответ всегда false (сдвиг длину не меняет). Две пустые строки считаются совпадением (true).s = a b c d e
↓ сдвиг k=2
goal = c d e a b → true
s = a b c d e
goal = a b c e d → false (это не циклический сдвиг)Примеры:
Вход:
{"s": "abcde", "goal": "cdeab"}
Выход:
true
Объяснение: Сдвиг на k=2: первые два символа «ab» переносятся в конец → «cdeab». Это совпадает с goal.
Вход:
{"s": "abcde", "goal": "abced"}
Выход:
false
Объяснение: «abced» — перестановка букв, но не циклический сдвиг «abcde»: ни при каком k сдвиг не даст такой порядок.
Вход:
{"s": "abcde", "goal": "abcde"}
Выход:
true
Объяснение: Сдвиг k=0 (или полный оборот) оставляет строку без изменений.
Вход:
{"s": "ab", "goal": "ba"}
Выход:
true
Объяснение: Сдвиг k=1: «ab» → «ba».
Вход:
{"s": "a", "goal": "aa"}
Выход:
false
Объяснение: Длины разные (1 и 2) — циклический сдвиг длины не меняет.
Ограничения:
0 <= s.length, goal.length <= 2000
s и goal состоят из строчных английских букв
Решите эту задачу в браузере
Создайте бесплатный аккаунт — редактор Python, Java, JavaScript и Go, проверка на тестах за секунды.
Комментарии (0)
Зарегистрируйтесь или войдите, чтобы оставить комментарий
Пока нет комментариев. Будьте первым!