Программа Javascript для генерации всех поворотов числа
Опубликовано: 2 Сентября, 2022
Учитывая целое число n , задача состоит в том, чтобы сгенерировать все возможные числа сдвига влево. Число со сдвигом влево — это число, которое генерируется, когда все цифры числа сдвигаются на одну позицию влево, а цифра в первой позиции сдвигается на последнюю.
Примеры:
Input: n = 123
Output: 231 312
Input: n = 1445
Output: 4451 4514 5144
Подход:
- Предположим, что n = 123 .
- Умножьте n на 10 , т.е. n = n * 10 = 1230 .
- Добавьте первую цифру к полученному числу, т.е. 1230 + 1 = 1231 .
- Вычтите (первая цифра) * 10 k из полученного числа, где k — количество цифр в исходном числе (в данном случае k = 3).
- 1231 — 1000 = 231 — номер сдвига влево исходного номера.
Ниже приведена реализация вышеуказанного подхода:
Временная сложность: O (log 10 (число))
Вспомогательное пространство: O(1)
Подход:
- Предположим, что n = 123.
- пусть temp = str(n) + str(n), т.е. 123123
- Теперь выполните итерацию по temp и возьмите срез 3 цифры из индекса итерации temp, который равен 231.
- Перебирать temp до тех пор, пока итератор не станет меньше половины длины temp.
Ниже приведена реализация вышеуказанного подхода:
Выход:
4451 4514 5144
Пожалуйста, обратитесь к полной статье Генерация всех вращений числа для получения более подробной информации!