вопрос, где вы должны проверить список строк, и каждый элемент должен быть длиннее, чем предыдущий элемент - PullRequest
1 голос
/ 23 октября 2019

Завершите проектирование функции для функции, которая берет список строк и определяет, больше ли каждая строка в списке, чем строка, которая предшествует ей. Предположим, что пустой список и список только с одним элементом удовлетворяют критериям (потому что за строкой не следует более длинная строка).

- вот мое текущее решение. я пробовал это с вложенным циклом, но это не сработало. я просто не могу понять, как сравнить два элемента в списке с одним рядом с другим после того, как он не вышел за пределы диапазона

def growing_strings(los):
    sum=0
    counter= 0
    while len(los[counter]) < len(los[counter+1]):
            sum+=1
            counter+=1

    if sum==len(los):
        return True
    else:
        return False

Ответы [ 2 ]

2 голосов
/ 23 октября 2019

Вы можете просто проверить, совпадает ли отсортированный список по длине строки с тем, что вы передаете в

def growing_strings(los):
    return sorted(los, key=lambda x: len(x)) == los

, если строки одинаковой длины не разрешены, добавьте дополнительную проверку

return sorted(los, key=lambda x: len(x)) == los and len({len(x) for x in los}) == len(los)
0 голосов
/ 23 октября 2019

Не внося существенных изменений в свою работу, вы можете включить в цикл while проверку, что counter+1 меньше длины списка:

def growing_strings(los):
    sum=0
    counter= 0
    while counter+1 < len(los) and len(los[counter]) < len(los[counter+1]):
        sum+=1
        counter+=1

    if sum==len(los):
        return True
    else:
        return False
...