Python: удаление более длинных подстрок строки в наборе

У меня была такая же проблема, и ни один из ответов не разрешил проблему.

Я побежал:

sudo nginx -t

, чтобы проверить файл конфигурации на / etc / nginx / sites-available / default.

Это дало мне эти ошибки:

nginx: [emerg] unexpected end of file, expecting "}" in /etc/nginx/sites-enabled/default:115
nginx: configuration file /etc/nginx/nginx.conf test failed

Итак, я зашел в конфигурационный файл, а на последней строке был

#}

Я раскоментирован, снова запустил тестовую команду, и она сработала

3
задан han bolo 5 March 2019 в 09:55
поделиться

2 ответа

Вы можете перебрать setA от самой короткой строки до самой длинной и добавить данную строку в setC, только если ни одна из возможных подстрок строки уже находится в setC. Вы можете сгенерировать все возможные подстроки из строки, перебирая начальный индекс по длине строки и перебирая размер подстроки от 1 до оставшейся длины строки из текущего начального индекса, а затем используя начальный индекс и длина подстроки для нарезки строки:

setC = set()
for s in sorted(setA, key=len):
    if not any(s[i: i + n + 1] in setC for i in range(len(s)) for n in range(len(s) - i)):
        setC.add(s)

setC становится:

{'AAB'}

Это улучшает общую сложность времени с O (n ^ 2) вашего решения O (n log n) .

0
ответ дан blhsing 5 March 2019 в 09:55
поделиться

Чтобы сделать алгоритм поиска подстроки @blhsing опубликованным немного проще для чтения, вы можете просто разделить шаги на их собственные циклы. Это та же логика, но не в одной строке.

setC = set()
sortedList = sorted(setA, key=len)
for substring in sortedList:
    if not substring_in_set(substring, set3):
        setC.add(substring)


# Checks whether the subtrings is in the set 
# and returns True or False
def substring_in_set(substring, set):
    for i in range(len(substring)):
        for n in range(len(substring) - i):
            if substring[i: i + n + 1] in set:
                return True
    return False
0
ответ дан Karl 5 March 2019 в 09:55
поделиться
Другие вопросы по тегам:

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