В этой задаче LeetCode нас просят определить, является ли предоставленное число палиндромом (и поэтому я бы сказал, что лучшим названием было бы Проверить, является ли число палиндромом).
Если вы читали мой пост о похожей задаче №7 (обратное целое), то, вероятно, понимаете, к чему все идет.
Решение №1: Обратный массив
Для этого невероятно простого решения мы разбиваем входное число на массив чисел, обращаем его, а затем проверяем, совпадает ли повторно объединенное значение обращенного массива с исходным.
Вы можете немного улучшить производительность, выполнив несколько обычных проверок палиндрома, чтобы отсечь все, что, как вы знаете, не будет работать, например, числа меньше 0 или числа больше 0, которые делятся на 10. Но если вы действительно хотите увидеть прирост производительности, вам нужно отказаться от использования массивов и использовать более математическое решение.
Решение № 2: Математическое
Это решение, основанное на представлении пользователя LeetCode choongmanee, выполняет вышеупомянутые проверки для значений, которые не требуют дорогостоящей операции реверсирования, а затем реверсирует число, используя умную технику, которую я не собираюсь сидеть вот и делай вид, что понял.
С точки зрения производительности, он на самом деле довольно похож, поэтому я оставлю вас, чтобы вы сами решили, что вы предпочитаете.