В этой задаче LeetCode нас просят определить, является ли предоставленное число палиндромом (и поэтому я бы сказал, что лучшим названием было бы Проверить, является ли число палиндромом).

Если вы читали мой пост о похожей задаче №7 (обратное целое), то, вероятно, понимаете, к чему все идет.

Решение №1: Обратный массив

Для этого невероятно простого решения мы разбиваем входное число на массив чисел, обращаем его, а затем проверяем, совпадает ли повторно объединенное значение обращенного массива с исходным.

Вы можете немного улучшить производительность, выполнив несколько обычных проверок палиндрома, чтобы отсечь все, что, как вы знаете, не будет работать, например, числа меньше 0 или числа больше 0, которые делятся на 10. Но если вы действительно хотите увидеть прирост производительности, вам нужно отказаться от использования массивов и использовать более математическое решение.

Решение № 2: Математическое

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

С точки зрения производительности, он на самом деле довольно похож, поэтому я оставлю вас, чтобы вы сами решили, что вы предпочитаете.