Рубрики
Без рубрики

Рекурсивный мышливый подход (Python)

Рекурсивное определение – это тот, который использует слово или концепцию, определенную в самом определении … Помечено программированием, питоном, рекурсивным, первым.

Рекурсивное определение – это тот, который использует слово или концепцию, определенную в самом определении

Прежде чем применять рекурсию к программированию, лучше всего практиковать мышление рекурсивно

Здесь я собираюсь показать вам хороший пример для разъяснения цели в подробном.

Проблема заключается в нахождении номера дополнения двоичного формата.

** ПРИМЕР 1:

Вход: Вывод: 2 Объяснение: Двоичное представление 5 составляет 101 (без ведущих нулевых битов), а его дополнение составляет 010. Таким образом, вам нужно выводить 2.

** ПРИМЕР 2:

Вход: Вывод: 0 Объяснение: Двоичное представление 1 равно 1 (без ведущих нулевых битов), а его дополнение 0. Так что вам нужно выводить 0.

** Ограничения:

The given integer num is guaranteed to fit within the range of a 32-bit signed integer.
num >= 1
You could assume no leading zero bit in the integer's binary representation.
class Solution:
    def findComplement(self, num: int) -> int:
        binary_num = bin(num)[2:] # >>> '101'
        new_binary_num = binary_num.replace('0','1') #>>>'111'
        int_num = int(new_binary_num, 2) #>>>7
        difference = int_num - num # >>>7-5 = 2
        return difference    

У прошащегося вы находитесь перед двумя вариантами, эффективность (время выполнения) и управление памятью Здесь мы выбрали память, однако, время выполнения не будет так плохо! В худшем случае это было бы о (n).

Объясняя код Python: 1 – Форматирование целочисленного входа в правильный двоичный двоичный для обработки нарезания его [2:], чтобы избежать префикса 0B Как вывод Bin (5) 2 – Чтобы получить дополнение, мы можем получить максимальное значение из двоичной последовательности, заменяя каждый «0» с «1»

3 Поверните его в целочисленный формат еще раз, используя дополнительную базу аргументов Int () = …

int ('101', Или мы можем сделать это int ('0b101', 2)

4- Получите разницу, которая будет представлять дополнение двоичной последовательности

Дополнительный ресурс для просмотра идеи с другой точки зрения Для читателей Curios

Оригинал: “https://dev.to/yusufadel/recursive-thinking-approach-python-3e53”