У меня была такая же проблема, и ни один из ответов не разрешил проблему.
Я побежал:
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
Итак, я зашел в конфигурационный файл, а на последней строке был
#}
Я раскоментирован, снова запустил тестовую команду, и она сработала
Вы можете перебрать 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) .
Чтобы сделать алгоритм поиска подстроки @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