Професионална програма
Loading...
petar.markov avatar petar.markov 0 Точки

Python Fundamentals - Big Numbers Lovers

Условие : 

You really like big numbers, so you always find a way to form one from numbers given to you

You will receive a single line containing numbers separated by a single space. Form the biggest number possible from them

Example

Input

Output

Comment

3 30 34 5 9

9534303

The numbers sorted are 9 5 34 30 3

1 2 3

321

 

Hint

  • Search in the internet how to sort list of string in python
  • Search in the internet how to sort in reversed order

 

 

За дадените входни данни най-голямото възможно число не е 9534303, а 9534330. Ако погледнеп поредицата която е дадена в примера : 

9 5 34 30 3

Друга поредица (3 е преди 30, което прави финалното число по-голямо от даденото като верен отговор в задачата): 

9 5 34 3 30

 

Оценявам добавените Hints, но какво би следвало да е вярно решение на задачата. Успях да напиша не много елегантно решение, което за няколко теста изглежда да работи - формира най-голямото възможно число от подадени различни такива.В Judge това не изглежда никак добре, но това може би е очаквано с изглед на разминаването в задачата. Решение : 

 

numbers = input().split(' ')
result = ''
minimum = -9999
numbers_lenght = len(numbers)
full_current_number = ''
full_num = ''
while True:
    if numbers_lenght == 0:
        break
    for num in numbers:
        if len(num) > 1:
            full_num = num
            if int(num[0]) > int(num[1]):
                num = num[0]
            else:
                num = num[1]
        current_number = int(num[0])
        if current_number > minimum and len(full_num) > 1:
            minimum = current_number
            full_current_number = full_num
            full_num = ''
        elif current_number > minimum:
            minimum = current_number
            full_current_number = num
            full_num = ''
    numbers.remove(full_current_number)
    result += full_current_number
    minimum = -9999
    numbers_lenght -= 1
print(result)

 

 

В задачата не се казва int или string да се върне, изглежда ми като да се иска най-голямо число на финала, следователно не намирам смисъл за str to int накрая или където и да е, освен на използваните места.

Някой има ли 100% Judge решение или някакво мнение по въпроса ? Мисля че има и други задачи, които имат нелогично поведение, друг имал ли е такъв случай и струва ли ви се възможно това.

 

Благодаря!

Тагове:
0
Fundamentals Module
yetoshimo avatar yetoshimo 2 Точки

искат да научим 

.sort(reverse = True)

100/100:

input_string = input().split(" ")
input_string.sort(reverse=True)
print("".join(input_string))
0
25/01/2021 10:22:40