Добавить в корзинуПозвонить
Найти в Дзене
BACKEND - PROGER - ША

Easy-задачи по Java для начинающих. Palindrome Number

Всем привет! Сегодня я начала решать задачи на сервисе Leetcode. Как я писала в предыдущем своем посте, это нужно мне, чтобы подготовится к буткемпу по Java, в котором я приму участие этим летом. Начала, само собой, с easy-уровня. Потому что логические задачки даются мне пока что не очень легко. Итак, поехали решать! Palindrome Number Первая наша задача заключается в проверке является ли заданное число палиндромом. Для справки: Палиндром - это строка или число, которое читается одинаково слева на право и с права на лево. Например: Число 121 - это палиндром, так как читается одинаково в обе стороны, а вот число 125 палиндромом не является. Алгоритм решения задачи: Вот ссылка на эту задачу на Leetcode. Возможно вы предложите решение получше? Пишите в комментариях свои варианты решения!
Оглавление

Всем привет! Сегодня я начала решать задачи на сервисе Leetcode. Как я писала в предыдущем своем посте, это нужно мне, чтобы подготовится к буткемпу по Java, в котором я приму участие этим летом. Начала, само собой, с easy-уровня. Потому что логические задачки даются мне пока что не очень легко.

Итак, поехали решать!

Palindrome Number

Первая наша задача заключается в проверке является ли заданное число палиндромом.

Для справки:

Палиндром - это строка или число, которое читается одинаково слева на право и с права на лево.

Например:

Число 121 - это палиндром, так как читается одинаково в обе стороны, а вот число 125 палиндромом не является.

Алгоритм решения задачи:

  1. Создадим функцию isPalindrome(), которая принимает положительное или отрицательное число и возвращает true - если заданное число является палиндромом и false - если не является.
  2. Внутри функции создадим две переменные - reverse (наше будущее число-перевертыш) и copy (копия заданного числа).
  3. Сделаем проверку на отрицательное число. Если в функцию будет передано отрицательное число, то сразу же вернем false. Потому что, к примеру, -121 никогда не будет равен 121-.
  4. Создадим цикл while, который будет работать, пока наша переменная copy будет оставаться больше 0.
  5. Внутри цикла мы на каждой итерации будем находить крайнюю правую цифру числа (переменная digit), сохраненного в переменной copy. Это очень легко сделать при помощи операции "остаток от деления - %"
  6. В переменной reverse мы постепенно будем собирать наше "перевернутое" число.
  7. На каждой итерации мы будем уменьшать copy в 10 раз.
  8. В итоге у нас соберется число, обратное заданному и останется только лишь сравнить их между собой.

Вот ссылка на эту задачу на Leetcode. Возможно вы предложите решение получше? Пишите в комментариях свои варианты решения!