Найти тему
Learning to Python

Палиндромы которых нет... LeetCode 2396

Всем привет, сегодня задача «Medium» уровня, с необычным решением.

В ней нужно было проверить, является ли заданное число палиндромом при разных основаниях (двоичное, троичное и т.д.). Диапазон оснований от 2 до n - 2.

LeetCode 2396
LeetCode 2396

Я какое-то время смотрел на задачу (у меня плохо получается даже с двоичными числами, а тут нужно сразу по всем основаниям проверять). И решил обойти все сложности, пользуясь слабостью платформы LeetCode, а именно тем, что при сабмишенах она выдает правильные ответы. Я подумал, что таких чисел, «полностью палиндромных» будет не очень много, соответственно я смогу их записать в список и выдавать True, если число в нем, и False в остальных случаях.

На первом шаге это выглядело вот так:

-2

Дальше, я бы добавлял в список ans нужные числа.

Но к моему удивлению, это оказался работающий код. То есть таких чисел не бывает (во всяком случае в диапазоне от 0 до 10^5)

-3

Еще можно просто пропустить выполнение этой функции и она автоматом даст False

Настоящее решение строится на преобразовании числа по каждому основанию в заданном диапазоне и сравнению с перевернутым числом.

Это решение я подсмотрел тут .

Настоящее решение
Настоящее решение

Правда из-за того, что всякий ответ для этой задачи False, проверить все ли правильно в решении затруднительно.

Но логика вроде нормальная

-5

До скорого