Почему я продолжаю получать сообщение об ошибке RunTime на Google Kick Start - PullRequest
0 голосов
/ 16 апреля 2020

Я пытаюсь решить проблему выделения в Google Kick Start https://codingcompetitions.withgoogle.com/kickstart/round/000000000019ffc7/00000000001d3f56.

Извините за португальские комментарии, но мой код работает просто отлично, он получает правильные awnsers с образцами:

  • 3
  • 4 100
  • 20 90 40 90
  • 4 50
  • 30 30 10 10
  • 3 300
  • 999 999 999

Я решил использовать Spyder, я не знаю, в этом ли проблема. Мой вход получает все числа в виде строки, например "20 90 40 90", может в этом проблема? Вот код:

def ncasas(nb, casas):
    nb = nb.split()
    casas = casas.split()
    B = int(nb[1])
    resp = 0
    casas_ = casas.copy()
    casas_verificado = []

    #=======Remove as casas acima do Budget===============
    for casa in casas:
        if ( (int(casa) >= B) and (casa in casas_) ):
            casas_.remove(casa)
    #=====================================================

    #========Deixa a lista com inteiros================
    for casa in casas_:
        casas_verificado.append( int(casa) )
    #=====================================================

    casas_verificado.sort()     #Deixa em ordem crescente

    #==Se o budget compra da direita para a esquerda==
    i = 1
    while(True):
       if ( sum(casas_verificado[:-i]) <= B ):
           resp = len(casas_verificado[:-i])
           break


       i += 1

    return(resp)
#==================================================================



t = int(input('Digite o numero de casos: '))

cont = 1
while(cont <= t):
    nb = input('Digite o número de casas e o budget: ')
    casas = input('Digite o valor das casa: ')
    print('Case #%i: %i' % (cont, ncasas(nb, casas)) )
    cont += 1

Мой ввод неверен? Мой вывод неверен? Я новичок в программировании, но хотел бы делать больше подобных кодовых джемов.

...