@SushkaCraftHabr

Почему не работает решение для задачи с Codewars?

Решил я порешать задачки с Codewars, начал с простеньких и дошёл до задачи "Well of Ideas - Easy Version".
Я написал такое решение:
def well(x):
    
    n = 0
    
    for j in x:
        for i in j:
            if str(i).lower() == 'good':
                n += 1
    if n == 1 or n == 2:
        return 'Publish!'
    
    elif n > 2:
        return 'I smell a series!'
    
    return 'Fail!'

Но ни один тест не проходит, почему?
  • Вопрос задан
  • 271 просмотр
Решения вопроса 1
githubVladimirT
@githubVladimirT
Кодер, немного сисадмин
def well(x):
    good = x.count('good')
    
    if good == 0:
        return 'Fail!'
    
    elif good == 1 or good == 2:
        return 'Publish!'
    
    elif good > 2:
        return 'I smell a series!'


У меня сработало такое решение
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@serhiops
Python/JavaScript/C++
Делюсь своими тремя примерами, скорость выполнения указана в коментариях к каждой функции
def well(x):
    #  0.05ms
    a = [i for i in x if i == 'good']
    if 3 > len(a) > 0:
        return 'Publish!'
    elif len(a) > 2:
        return 'I smell a series!'
    return 'Fail!'

from collections import Counter
def well2(x):
    # 0.19ms
    c = Counter(x)
    if 3 > c['good'] > 0:
        return 'Publish!'
    elif c['good'] > 2:
        return 'I smell a series!'
    return 'Fail!'

def well3(x):
    # 0.11 ms
    countOfGoodIdeas = 0
    for i in x:
        if i == 'good':
            countOfGoodIdeas+=1
    if 3 > countOfGoodIdeas > 0:
        return 'Publish!'
    elif countOfGoodIdeas > 2:
        return 'I smell a series!'
    return 'Fail!'
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы