K-я цифра с конца числа

Опубликовано: 22 Сентября, 2022

Для заданного целого числа N задача состоит в том, чтобы найти K цифру с конца целого числа N. Если K цифры нет, то выведите -1 .

Примеры:

Input: N = 2354, K = 2
Output: 5

Input: N = 1234, K = 1
Output: 4

Наивный подход: самый простой подход к решению этой проблемы преобразование целого числа N в строку. Выполните следующие шаги, чтобы решить эту проблему:

  • Если K меньше 0, то выведите -1 и вернитесь.
  • Преобразуйте N в строку и сохраните в temp .
  • Если K больше, чем размер temp , то выведите -1 , иначе выведите символ K с последнего.

Ниже приведена реализация вышеуказанного подхода:

Временная сложность: O(d), где d — количество цифр в числе N.
Вспомогательное пространство: O(d)

Эффективный подход : эту проблему можно решить, перебирая цифры числа N. Чтобы решить эту проблему, выполните следующие действия:

  • Если K меньше 0, то выведите -1 и вернитесь.
  • Итерировать, пока N и K-1 больше 0 :
    • Обновите N как N/10 и уменьшите K на 1 .
  • Если N равно 0 , то выведите -1 , иначе выведите N%10 .

Ниже приведена реализация вышеуказанного подхода:

Временная сложность: O(d), где d — количество цифр в числе N.
Вспомогательное пространство: O(1)

Эффективный подход: эту проблему можно решить с помощью функции мощности. Выполните следующие шаги, чтобы решить эту проблему:

  • Если K меньше 0, то выведите -1 и вернитесь.
  • Инициализируйте переменную, скажем, divisor как pow(10, K-1).
  • Если делитель больше N, выведите -1, иначе выведите (N/делитель) %10.

Ниже приведена реализация вышеуказанного подхода:

Временная сложность: O(log(K)), где d — количество цифр в числе N. На этот раз сложность связана с вычислением мощности 10 с использованием функции мощности.
Вспомогательное пространство: O(1)