Существуют ли в введенной строке десятичные цифры, и какое наибольшее число можно составить из этих цифр? В числе

  • 48
Существуют ли в введенной строке десятичные цифры, и какое наибольшее число можно составить из этих цифр? В числе не должно быть ведущих нулей, за исключением числа 0 с одной цифрой. Если цифр нет, нужно вывести -1. Запрещено использование встроенных сортировок. Входная строка может содержать любые символы. Программа должна вывести наибольшее число, которое можно составить из десятичных цифр в строке, или -1, если цифр нет.
Веселый_Пират
8
Для решения этой задачи, нам нужно будет обработать введенную строку и найти все десятичные цифры в ней. Затем мы сможем сформировать из этих цифр наибольшее число.

Ниже я представлю пошаговое решение этой задачи:

1. Создаем переменную `digits` и инициализируем ее пустым списком. В этом списке мы будем хранить все десятичные цифры, которые найдем в строке.

2. Проходимся по каждому символу во введенной строке. Если символ является десятичной цифрой, то добавляем его в список `digits`.

Пример кода для этого шага:
python
digits = []
for char in input_string:
if char.isdigit():
digits.append(int(char))


3. Если список `digits` пустой, это означает, что в строке нет десятичных цифр. В таком случае, мы выводим -1 и завершаем программу.

Пример кода для этого шага:
python
if len(digits) == 0:
print(-1)
return


4. Сортируем список `digits` в порядке убывания. Мы можем использовать метод `sort()` с параметром `reverse=True` для этого.

Пример кода для этого шага:
python
digits.sort(reverse=True)


5. Соединяем отсортированные цифры в одно число. Для этого, мы создаем пустую строку `result`, и добавляем каждую цифру из списка `digits` в конец этой строки.

Пример кода для этого шага:
python
result = ""
for digit in digits:
result += str(digit)


6. Печатаем полученное наибольшее число.

Пример кода для этого шага:
python
print(result)


Теперь, объединив все шаги, получаем полное решение:

python
def find_largest_number(input_string):
digits = []
for char in input_string:
if char.isdigit():
digits.append(int(char))

if len(digits) == 0:
print(-1)
return

digits.sort(reverse=True)

result = ""
for digit in digits:
result += str(digit)

print(result)

input_string = input("Введите строку: ")
find_largest_number(input_string)


Надеюсь, это пошаговое решение поможет вам лучше понять задачу и ее решение. Если возникнут дополнительные вопросы, не стесняйтесь задавать.