K-я цифра с конца числа
Для заданного целого числа N задача состоит в том, чтобы найти K -ю цифру с конца целого числа N. Если K -й цифры нет, то выведите -1 .
Примеры:
Input: N = 2354, K = 2
Output: 5Input: 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)