Введение
В этой статье мы будем находить палиндромы строк в Java, это работает так же, как и в целых числах. Смысл палиндромной строки заключается в том, что если мы начинаем читать ее справа налево или слева направо, то в обоих случаях она будет одинаковой.
Алгоритм
Подход 1
Для проверки палиндромов строк в java мы можем выбирать символы по одному из начала и конца строки и сравнивать их между собой.
=> Выберите первый и последний символ строки и сравните, если оба символа совпадают, то продолжайте, иначе строка не является палиндромом.
=> Выберите второй символ из первого и последнего символов строки и сравните, если оба символа совпадают — продолжайте, иначе строка не является палиндромом.
=> Продолжайте сравнение до тех пор, пока оба сравниваемых символа не окажутся одинаковыми или соседними друг с другом.
Подход 2
Вместо того чтобы сравнивать символы от начала до конца, можно найти обратную строку данной строки и сравнить обе строки, если они одинаковы, значит, строка является палиндромом.
=> Из заданной строки получить массив символов
=> Создаем строку, итерируя массив от конца к начальному индексу.
=> Удалите разделитель, запятую или другие разделители из обеих строк (необязательно)
=> Наконец, сравните обе строки.
Пример
1. Палиндром строк в java с помощью Loop
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
System.out.print("Enter any string : ");
Scanner in = new Scanner(System.in);
String origString = in.nextLine();
String reverseString = "";
char[] characters = origString.toCharArray();
for( int i = characters.length - 1 ; i >= 0 ; i-- ) {
reverseString = reverseString + characters[i];
}
//Check palindrome string
if (origString.equals(reverseString)) {
System.out.println("String is a palindrome.");
} else {
System.out.println("String is not a palindrome.");
}
}
}
Выход:
Введите любую строку: Погода
Строка не является палиндромом.
Введите любую строку: Naman
Строка является палиндромом.
Пример
class Main {
public static void main(String[] args) {
String str = "Radar", reverseStr = "";
int strLength = str.length();
for (int i = (strLength - 1); i >=0; --i) {
reverseStr = reverseStr + str.charAt(i);
}
if (str.toLowerCase().equals(reverseStr.toLowerCase())) {
System.out.println(str + " is a Palindrome String.");
}
else {
System.out.println(str + " is not a Palindrome String.");
}
}
}
Выход:
Радар является палиндромом.
Пример
Использование стека
import java.util.Scanner;
import java.util.Stack;
public class Main
{
public static void main(String[] args)
{
System.out.print("Enter the string : ");
Scanner in = new Scanner(System.in);
String origString = in.nextLine();
Stack<Character> stack = new Stack<>();
//Push all chars in stack
for (int i = 0; i < origString.length(); i++) {
stack.push(origString.charAt(i));
}
String reverseString = "";
//Pop all chars from stack one by one and build reverse string
while (!stack.isEmpty()) {
reverseString = reverseString + stack.pop();
}
//Check palindrome string
if (origString.equals(reverseString)) {
System.out.println("String is a palindrome.");
} else {
System.out.println("String is not a palindrome.");
}
}
}
Выход:
Введите строку: madam
Строка является палиндромом.
Пример
Использование очереди
import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
System.out.print("Enter the string : ");
Scanner in = new Scanner(System.in);
String origString = in.nextLine();
Queue<Character> queue = new LinkedList<>();
for (int i = origString.length()-1; i >=0; i--) {
queue.add(origString.charAt(i));
}
String reverseString = "";
//Pop all chars from stack one by one and build reverse string
while (!queue.isEmpty()) {
reverseString = reverseString + queue.remove();
}
//Check palindrome string
if (origString.equals(reverseString)) {
System.out.println("String is a palindrome.");
} else {
System.out.println("String is not a palindrome.");
}
}
}
Выход:
Введите строку: racecar
Строка является палиндромом.
Введите строку: java
Строка не является палиндромом.
Заключение
В этом блоге мы рассмотрели палиндром строк в Java. Мы рассмотрели две методики решения проблемы палиндрома строки в Java с разъяснением сложности существования.
Мы искренне хотим верить, что вы остались довольны просмотром этого блога. Оцените другие вопросы, связанные со строками в Java, такие как переключение строки, проверка того, является ли число палиндромом, проверка того, являются ли две заданные строки изоморфными друг другу, базовые символы, которые нужно добавить спереди, чтобы сделать строку палиндромом, и т.п. В java существует множество концепций, которые можно изучить на начальном и среднем уровне, чтобы получить знания в java. Некоторые из них, например, ключевые слова final в java, основы javascript, концепции oops и т.д.