Программа Javascript для проверки возможности получения строки путем поворота другой строки на d мест
Имея две строки str1 и str2 и целое число d , нужно проверить, можно ли получить строку str2 , повернув строку str1 на d позиций (влево или вправо).
Примеры:
Input: str1 = “abcdefg”, str2 = “cdefgab”, d = 2
Output: Yes
Rotate str1 2 places to the left.Input: str1 = “abcdefg”, str2 = “cdfdawb”, d = 6
Output: No
Подход: здесь обсуждался подход к решению той же проблемы. В этой статье используется реверсивный алгоритм для поворота строки влево и вправо за O(n). Если любой из поворотов str1 равен str2 , то выведите Yes , иначе выведите No.
Ниже приведена реализация вышеуказанного подхода:
Временная сложность: O(n)
Подход: в этом подходе мы используем временную строку, которая представляет собой длинную строку с кратностью str1 на 2. Если мы хотим повернуть строку на d место, мы нарезаем строку из n мест, начиная с d. Точно так же мы вращаем вправо. Для вращения вправо мы используем d со значением (длина str1) – d. Если любой из поворотов строки str1 равен строке str2, то выведите Да, иначе выведите Нет.
Ниже приведена реализация вышеуказанного подхода:
Выход:
Yes
Пожалуйста, обратитесь к полной статье о проверке, можно ли получить строку, повернув другую строку на d мест для получения более подробной информации!