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
iv.klisurova avatar iv.klisurova 2 Точки

Здравей, 

 

това е моето решение. https://pastebin.com/HpS67RzZ. Но си прав за нлогичното поведение на примера. 

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.