Программа-палиндром на Java | Java-программа для проверки полидрома

Опубликовано: 2021-02-26

Оглавление

Введение

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

Теперь, переходя к нашей теме, мы собираемся написать код Java, чтобы проверить, является ли данный ввод палиндромом или нет.

Число или слово называется палиндромом, если оно остается прежним после перестановки. И мы можем реализовать решение как итеративно, так и рекурсивно. Итак, приступим!

Итеративный Java-код

Идея проста; мы объявим переменную «reverse», которая хранит обратный номер нашего ввода.

Мы будем умножать обратную переменную на 10 (чтобы заполнить позицию единицы 0) на каждой итерации. Затем мы добавим остаток входного числа после деления его на 10. После добавления остатка мы разделим входное число на 10 (чтобы удалить число в позиции единицы).

Мы остановим описанный выше алгоритм, когда входное число станет равным 0, а число, присутствующее в обратной переменной, будет обратным входному числу.

общественный класс upGrad {

public static void main(String[] args) {

число n=12221;

инт реверс=0;

интервал темп=n;

в то время как (температура> 0) {

реверс=реверс*10;

реверс=реверс+темп%10;

темп=темп/10;

}

если (обратное == п)

System.out.print(n+” — палиндром”);

еще

System.out.print(n+” не является палиндромом”);

}

}

В приведенном выше коде мы объявили переменную 'n', в которой хранится начальное число, и мы должны проверить, является ли число n палиндромом или нет. В цикле while мы будем следовать алгоритму, который обсуждали ранее. И, наконец, мы проверяем, равно ли перевернутое число исходному числу или нет. Если измененное число и исходные числа совпадают, мы печатаем его как палиндром else, а не палиндром.

Теперь этот код будет работать только для целочисленного ввода. И если мы хотим проверить, является ли данное слово палиндромом или нет, мы должны иметь дело с ним, используя строки. И вот код для этого.

общественный класс upGrad{

public static void main(String[] args) {

Строка s="ротор";

Строка реверс=новая строка();

for(int i=s.length()-1;i>=0;i–)

реверс=реверс+s.charAt(i);

если (s.equals (обратное))

System.out.print(s+” — это палиндром”);

еще

System.out.print(s+” не является палиндромом”);

}

}

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

Рекурсивный Java-код

В этой реализации мы собираемся сравнить первый и последний символы. И если они равны, то повторяются далее для оставшейся строки.

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

общественный класс upGrad{

public static boolean isPalindrome (String str, int low, int high) {

если (низкий==высокий)

вернуть истину;

если (str.charAt (низкий)! = str.charAt (высокий))

вернуть ложь;

если (высокий-низкий> 1)

return isPalindrome (str, low+1, high-1);

вернуть истину;

}

public static void main(String[] args) {

Строка s1="ротор";

Строка s2="программирование";

System.out.println(isPalindrome(s1,0,s1.length()-1));

System.out.println(isPalindrome(s2,0,s2.length()-1));

}

}

В приведенном выше коде мы написали функцию, которая ожидает строку с двумя целыми числами в качестве параметров. И два целых числа, low, high — это указатели, которые отслеживают символы, которые необходимо проверить. И если имена на позиции low и high равны.

мы будем вызывать ту же функцию с обновленными параметрами, чтобы строка сжималась с обеих сторон на один символ. И если указатели low и high встречаются или между ними присутствует один символ, то мы дошли до середины строки и заключили ее в виде палиндрома.

Теперь давайте проверим код строки «ротор». Первоначально младший равен 0, а старший равен 4. Поскольку символ в 0-й позиции ('r') равен символу в 4-й позиции ('r'), мы сделаем рекурсивный вызов с младшим значением, обновленным как младшим. +1 и высокий уровень обновлен как высокий-1.

Теперь low равен 1, а high равен 3, так как символы в этих позициях равны, мы снова сделаем рекурсивный вызов. Теперь low равен 2, а high равен 2, и это запускает базовый случай, когда low эквивалентен high, поэтому мы вернем true.

Мы также можем реализовать рекурсивную функцию для проверки того, является ли целое число палиндромом или нет, и вот как это сделать.

статическое логическое значение isPalindrome (int n, int rev, int temp) {

если (темп == 0)

вернуть n==rev;

оборот=об*10;

return isPalindrome(n,rev+temp%10,temp/10);

}

Обратите внимание, что в приведенной выше функции изначально n и temp совпадают. Потому что, наконец, мы должны сравнить обратное число с исходным числом, поэтому все вычисления выполняются с одной и той же переменной. Начальный номер не должен быть изменен.

Читайте также: Идеи и темы проектов Java

Изучайте онлайн-курсы по программному обеспечению от лучших университетов мира. Участвуйте в программах Executive PG, Advanced Certificate Programs или Master Programs, чтобы ускорить свою карьеру.

Заключение

Мы поняли определение палиндрома, прошлись по итеративным и рекурсивным кодам для проверки того, является ли строка/число палиндромом или нет. Мы знаем код по пробному прогону примера. Теперь, когда вы знаете о реализации кода для проверки палиндрома, попробуйте реализовать его с помощью класса сканера и попробуйте закодировать его с использованием концепций ООП.

Если вы хотите улучшить свои навыки работы с Java, вам нужно взяться за эти Java-проекты. Если вам интересно узнать больше о Java и разработке полного стека, ознакомьтесь с программой Executive PG upGrad и IIIT-B по разработке программного обеспечения с полным стеком, которая предназначена для работающих профессионалов и предлагает более 500 часов тщательного обучения, 9+ проекты и задания, статус выпускника IIIT-B, практические практические проекты и помощь в трудоустройстве в ведущих фирмах.

Что такое палиндром?

Палиндромное предложение – это литературное произведение, словосочетание, стих или слово, читающиеся одинаково в прямом или обратном направлении. Палиндром — это тип игры слов, в частности слово или фраза (предложение), которые одинаково читаются вперед или назад. Палиндром — это слово, фраза, число или другая последовательность символов, которая одинаково читается как в прямом, так и в обратном порядке. Например, Человек, план, канал, Панама! является палиндромом. Некоторые палиндромы не являются словами, например число 106601. Некоторые палиндромы являются фразами, например, мадам, я Адам.

Как подготовиться к собеседованию по Java?

Если вы хотите стать экспертом по Java, вам нужно сначала убедиться в том, что несколько вещей в порядке. Прежде всего, вам необходимо хорошо знать язык Java. Во-вторых, вы должны хорошо разбираться в Java API. Вам не обязательно обладать абсолютным мастерством API, но вы должны иметь представление о том, что доступно и когда какой класс использовать. Наконец, вам необходимо иметь глубокое представление о виртуальной машине Java. Например, вы должны быть в состоянии написать интерпретатор для простого языка. Если вы проходите собеседование на должность разработчика компилятора, вы не в теме.

Как писать хорошие программы на Java?

Вот некоторые из лучших практик при написании программы на Java: Всегда используйте 'общедоступный класс' для запуска класса. Никогда не используйте «public static void main» внутри класса. Никогда не используйте ключевое слово this внутри класса. Никогда не используйте модификатор final для методов. Никогда не используйте модификатор 'static' для переменных экземпляра. Никогда не делайте переменные «публичными», если в этом нет крайней необходимости. Всегда имейте хорошее соглашение об именах. Никогда не делайте переменную более чем одной буквой с числовым суффиксом. Избегайте создания переменных с более чем одним словом. Никогда не используйте ключевое слово this внутри метода. Никогда не используйте ключевое слово «перерыв».