palindrom.py 1.3 KB

1234567891011121314151617181920212223242526272829303132
  1. from itertools import permutations
  2. from tqdm import tqdm
  3. # Список слов
  4. words_list = ['мама', 'мыла', 'раму', "А", "роза", "упала", "на", "лапу", "Азора", "У", "попа", "была", "собака"]
  5. # Создаем пустое множество для хранения уникальных возможных фраз
  6. phrases = set()
  7. # Генерируем все возможные перестановки слов разной длины
  8. for r in range(1, len(words_list)+1):
  9. for perm in tqdm(permutations(words_list, r)):
  10. phrase = ' '.join(perm)
  11. phrases.add(phrase)
  12. # Функция для проверки палиндрома
  13. def is_palindrome(s):
  14. s_cleaned = ''.join(s.split()).lower() # убираем пробелы и приводим к нижнему регистру
  15. return s_cleaned == s_cleaned[::-1]
  16. # Проверяем каждую фразу на палиндром
  17. palindromes = []
  18. for p in tqdm(phrases):
  19. if is_palindrome(p):
  20. palindromes.append(p)
  21. # Выведем найденные палиндромы
  22. if palindromes:
  23. print("Следующие фразы являются палиндромами:")
  24. for p in palindromes:
  25. print(p)
  26. else:
  27. print("Ни одна из составленных фраз не является палиндромом.")