Как найти все возможные комбинации палиндромных подстрок для некоторой случайно введенной строки в Python? Например, если введен xxyx, что должно быть возвращено:Найти все комбинации палиндромных подстрок
[['xx', 'y', 'x'], ['x', 'xyx'], ['x', 'x', 'y', 'x']] .
Я знаю, как получить все подстроки и проверить, если это палиндром, но не может найти способ объединить в правильное решение, как показано на рисунке. Прошу прощения, если вопрос не задан правильно, это мой первый.
Вот код:
def find_all_subsets(seq, n):
if n == 0:
return [[]]
else:
result = []
subsets = find_all_subsets(seq, n-1)
for subset in subsets:
result += [subset]
result += [[seq[n-1]] + subset]
return result
def check_palindrome(subsetsList):
finalList = []
for set in subsetsList:
if set[::-1] == set:
finalList.append(set)
else:
continue
return finalList
if __name__ == "__main__":
word = "xxyx"
palindromicSubsets = check_palindrome(find_all_subsets(word, len(word)))
print(palindromicSubsets)
Не плохой первый вопрос, НО! Вы должны добавить код, который вы уже пробовали. На данный момент он слишком широк, но если вы уже сделали работу и просто проигнорировали ее, я думаю, что исправление этого недосмотра оставит ее в хорошем состоянии. (О, и, пожалуйста, отредактируйте свой вопрос, чтобы сделать это. Длинный фрагмент кода формата _terribly_ в комментариях.) –
Ну, все, что я пробовал до сих пор, давало мне все возможные палиндромные подстроки внутри этой строки, я даже не был близок к объедините их, как я должен. Я могу показать этот код, но я не уверен, что он сделает вопрос менее широким. – Lupus
Можете ли вы объяснить, почему в ожидаемом выводе список разбит так? Я ожидал бы, что _set_ палиндромных подстрок будет, ну, набор или, может быть, список, но кажется произвольным, почему они находятся во вложенных списках. –