Я пытался решить проблему Leetcode, касающуюся определения, является ли введенное число палиндромом или нет

Я понял логику решения проблемы, но в закодированном решении меня немного смущает оператор return в конце. Пожалуйста, объясните мне, каково его значение, почему оно используется и т. д.? (не почему используется возврат, а почему это значение возвращается).

class Solution {
public boolean isPalindrome(int x) {
    // 2 cases  x < 0 = false case 
    //  x > 0 = test case
    
    if (x < 0 || x % 10 == 0 && x != 0){
        return false;
    }
    else {
        int newNum = 0;
        while (x > newNum){
        int r = (x % 10);
        newNum = newNum * 10 + r;
        x /= 10;
        }
    //the part I am confused about - below     
    return x == newNum || x == newNum / 10;
    }
   
    }  
}
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
30
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Итак, чтобы понять логику оператора return, давайте возьмем 2 числа.

  1. 1234321
  2. 678876

Итак, одна вещь, которую здесь делает цикл While, - это создание нового числа (newNum) из X и обеспечение того, чтобы newNum сохранял обратную сторону X до средней точки.

Таким образом, в случае 1234321 этот цикл while будет выполняться до тех пор, пока X=123 и newNum=1234.

После выхода из цикла while с этими значениями из двух возвращаемых операторов x == newNum / 10 даст истинный результат, поэтому оператор return вернет true. Это означает, что число является палиндромом.

Обратите внимание, что нет. цифры в данном целом числе нечетные (7)

Давайте теперь возьмем другой пример 678876

В этом случае, когда цикл while завершится, значение для X будет 678, а newNum будет 678.

из двух возвращаемых операторов x == newNum на этот раз даст истинный результат, поэтому оператор return снова вернет true. Это означает, что число является палиндромом.

Обратите внимание, что нет. цифры в заданном целом числе четные(6)

В общем, этот оператор возвращает x == newNum || х == новое число / 10; заключается в том, чтобы убедиться, что мы покрываем условие как для нечетного, так и для четного нет. цифр в данном целом числе X.

Ах, я вижу, Теперь я полностью понимаю это. Кажется, меня смутило объяснение, которое там было дано. Теперь я понял это полностью, спасибо большое.

Zenraven 19.03.2022 08:37

Рад, что помогло!

Divya J 19.03.2022 08:59

Другие вопросы по теме