Как проверить палиндромную строку в java?


Введение

В этой статье мы будем находить палиндромы строк в 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 и т.д.

Оцените статью
devanswers.ru
Добавить комментарий