Эффективно ли это решение Java-палиндрома?Он не использует строковые или символьные методы - PullRequest
0 голосов
/ 06 февраля 2019

Вот решение, которое я увидел:

package com.philippemoisan;

public class Main {

    public static void main(String[] args) {
        System.out.println(isPalindrome(-212));
    }

    public static boolean isPalindrome(int number)  {
        int reverse  = 0;
        int initNumber = number;
        while (number != 0)  {
            int lastDigit = number % 10;
            reverse = reverse * 10;
            reverse +=lastDigit;
            number/=10;
        }
        if (initNumber == reverse)  {
            return true;
        }
        return false;
    }
}

Я знаю, что есть палиндромные решения здесь , но я еще не так далеко в своем курсе по Java.Итак, я просто хочу знать, является ли решение, которое я разместил здесь, эффективным, или было бы намного лучше использовать решения из ссылки на нить, которую я предоставил.

Ответы [ 2 ]

0 голосов
/ 06 февраля 2019

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

Пространственно-временное сложность палиндрома полностью отличается от целочисленного палиндрома.

Надеюсь, что помогает. Желаем вам приятного путешествия по Java

0 голосов
/ 06 февраля 2019

Решение по связанному ответу более эффективно, потому что если слово не является палиндромом, оно не будет перебирать все число / слово.

Решение, которое вы предоставили, проходит по всему числу / слову дажекогда первый шаг может обнаружить, что первая и последняя цифра / символ не идентичны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...