кодесурса
«Python

Python: получить все числа стробограмм, длина которых n

script1adsense2code
script1adsense3code

Python Basic - 1: Упражнение 17 с решением

Напишите программу на Python, чтобы получить все стробограмматические числа длиной n.

Стробограмматическое число - это число, цифра которого вращательно-симметрична, поэтому при повороте на 180 градусов она выглядит одинаково. Другими словами, цифра выглядит одинаково правой стороной вверх и вверх ногами (например, 69, 96, 1001).

Например,
Учитывая n = 2, вернуть ["11", "69", "88", "96"].
Учитывая n = 3, вернуть ['818', '111', '916', '619', '808', '101', '906', '609', '888', '181', '986' , '689']

Иллюстрированная презентация:

«Python:

Пример решения :

Код Python:

#https://github.com/keon/algorithms/blob/master/math/generate_strobogrammtic.py
def gen_strobogrammatic(n):
    """
    :type n: int
    :rtype: List[str]
    """
    result = helper(n, n)
    return result
def helper(n, length):
    if n == 0:
        return [""]
    if n == 1:
        return ["1", "0", "8"]
    middles = helper(n-2, length)
    result = []
    for middle in middles:
        if n != length:
            result.append("0" + middle + "0")
        result.append("8" + middle + "8")
        result.append("1" + middle + "1")
        result.append("9" + middle + "6")
        result.append("6" + middle + "9")
    return result
print("n = 2: \n",gen_strobogrammatic(2))
print("n = 3: \n",gen_strobogrammatic(3))
print("n = 4: \n",gen_strobogrammatic(4))

Пример вывода:

 n = 2: 
 ['88', '11', '96', '69']
n = 3: 
 ['818', '111', '916', '619', '808', '101', '906', '609', '888', '181', '986', '689']
n = 4: 
 [«8008», «1001», «9006», «6009», «8888», «1881», «9886», «6889», «8118», «1111», «9116», «6119», « 8968 ',' 1961 ',' 9966 ',' 6969 ',' 8698 ',' 1691 ',' 9696 ',' 6699 ']

Блок - схема:

«Блок-схема:

Визуализируйте выполнение кода Python:

Следующий инструмент визуализирует, что компьютер делает шаг за шагом при выполнении указанной программы:

Редактор кода Python:

Есть другой способ решить это решение? Внесите свой код (и комментарии) через Disqus.

Предыдущий: Напишите программу на Python, чтобы получить третью сторону прямоугольного треугольника с двух указанных сторон.
Далее: Напишите программу на Python, чтобы найти медиану среди трех заданных чисел.

Каков уровень сложности этого упражнения?

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code