Программа 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

Пожалуйста, обратитесь к полной статье Генерация всех вращений числа для получения более подробной информации!