Для функции Large_bitonic_at_most(n) найти наибольший положительный bitonic< /em> целое число, не превышающее n, и вернуть его.
Вот определение bitonic в этой задаче:
- Если цифры n расположены только в неубывающем порядке, это битонический код (например, 123456, 15687)
< li>Если его цифры расположены только в невозрастающем порядке, то он битонический (например, 964441, 7521) - Если его цифры сначала неубывающие, а затем невозрастающие до конца , оно является битонным (например, 12368862, 2952).
- Повторяющиеся цифры будут по-прежнему учитываться, если они соответствуют первым трем условиям (например, 77777, 12222521 являются битоническими).
Пример вызова 1:
largest_bitonic_at_most(227942) == 227942
Пример вызова 2:
largest_bitonic_at_most(28052) == 28000
Пример вызова 3:
largest_bitonic_at_most(268472) == 68444
На данный момент я могу использовать только базовые команды Python (например, if else, рекурсию, присваивания)
Вот код, который у меня есть на данный момент.
def largest_bitonic_at_most(n):
def helper(n):
n = str(n)
length = len(n)
if length > 2:
if n[0] n[1]:
if n[1] >= n[2]:
return n[0] + helper(n[1:])
else:
return n[0] + (n[1] * (length - 1))
else:
return n[0]
elif length 0:
if n[0] >= n[1]:
return n[0] * 2
else:
return n
x = helper(n)
return int(x)
Вот некоторые примеры моделирования и результаты.
print(largest_bitonic_at_most(11118)) #11118
print(largest_bitonic_at_most(211144)) #211144 should be 211111
print(largest_bitonic_at_most(1204)) #1200
print(largest_bitonic_at_most(789123)) #789111
Подробнее здесь: https://stackoverflow.com/questions/789 ... as-an-inte