Python: одна и та же программа имеет 2 разных выхода на 2 разных компиляторах - PullRequest
0 голосов
/ 19 марта 2020

Мне нужна ваша помощь, ребята! Так вот в чем дело: я недавно начал изучать Python и использую «хакерранк». Я застрял с одной из их проблем: https://www.hackerrank.com/challenges/the-minion-game/problem Я записал программу, которая отлично работает на pycharm, но дает неверный вывод на компилятор хакерранка. Я понятия не имею, почему это происходит ... Вот моя программа:

def trouve(thing_list,elem):
    if elem in thing_list:
        return(thing_list.index(elem))
    else:
        return -1

def operation1(S):
    global i,j,T1,score1
    r=i+1
    while (r<=len(S)):
        if trouve(T1,S[i:r])==-1:
            T1.append(S[i:r])
            score1[j]=1
            j+=1
            r+=1
        else:
            score1[T1.index(S[i:r])]+=1
            r+=1

def operation2(S):
    global u, t, T2, score2
    p = u + 1
    while (p <= len(S)):
        if trouve(T2, S[u:p]) == -1:
            T2.append(S[u:p])
            score2[t] = 1
            t += 1
            p += 1
        else:
            score2[T2.index(S[u:p])] += 1
            p += 1



def remplir1(S):
    global T1,i,j
    for i in range(len(S)):
     if S[i] in ('a', 'e', 'i', 'o', 'u'):
        operation1(S)




def remplir2(S):
    global T2,u,t
    for u in range(len(S)):
        if not(S[u] in ('a', 'e', 'i', 'o', 'u')):
            operation2(S)


def minion_game(S):
    global i,j,T1,score1,T2,score2,u,t
    T1=[]
    T2=[]
    score1=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
    score2=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
    i=0
    j=0
    t=0
    u=0
    remplir1(S)
    remplir2(S)
    s1=0
    s2=0
    i=0
    for i in score1:
        s1+=i
    i=0
    for i in score2:
        s2+=i

    if s2>s1:
        print("Stuart {}".format(s2))
    elif s1>s2:
        print("Kevin {}".format(s1))
    else:
        print("Draw")

if __name__ == '__main__':
    s = input()
    minion_game(s)

(Например, для banana выводится Stuart 21 вместо Stuart 12, когда я запускаю программу на их компилятор)

1 Ответ

0 голосов
/ 19 марта 2020

NVM Мне просто нужно было добавить эту команду: S = S.lower () и теперь все работает ^^

...