Java >> Tutoriel Java >  >> Tag >> String

Programme Java pour vérifier la chaîne Palindrome à l'aide de Recursion

Dans ce tutoriel, nous allons apprendre à vérifier si une chaîne est un palindrome ou non à l'aide d'une fonction récursive. Une fonction récursive est une fonction qui s'appelle elle-même. Mais avant d'aller plus loin, si vous n'êtes pas familier avec le concept de chaîne, consultez l'article sur les chaînes en Java.

Entrée : Entrez la chaîne :maman

Sortie : La chaîne saisie est un palindrome.

Regardons le programme pour vérifier si la chaîne est un palindrome ou non.

Programme 1 :Vérifier la chaîne Palindrome à l'aide de la récursivité

Dans ce programme, nous apprendrons comment vérifier si une chaîne est un palindrome ou non en utilisant la récursivité. Ici, nous demanderons à l'utilisateur d'entrer la chaîne. Ensuite, nous appellerons une fonction récursive séparée pour vérifier si la chaîne est un palindrome ou non uniquement si la chaîne saisie est non vide. Si la chaîne est vide, il imprimera qu'il s'agit d'un palindrome.

Algorithme

  1. Commencer
  2. Déclarez une variable de chaîne.
  3. Demandez à l'utilisateur d'initialiser la chaîne.
  4. Appelez une fonction pour vérifier si la chaîne est palindrome ou non.
  5. Si une chaîne est vide, alors c'est un palindrome.
  6. Si la chaîne n'est pas vide, appelez une fonction récursive.
  7. S'il n'y a qu'un seul caractère, alors c'est un palindrome.
  8. Si le premier et le dernier caractères ne correspondent pas, il ne s'agit pas d'un palindrome.
  9. S'il y a plusieurs caractères, vérifiez si la sous-chaîne du milieu est également palindrome ou n'utilise pas la fonction récursive.
  10. Imprimez le résultat.
  11. Arrêtez.

Vous trouverez ci-dessous le code correspondant en langage Java.

/*Java Program to Check whether a String is a Palindrome or not using Recursive Function*/
import java.util.Scanner;
public class Main
{
    //Recursive function that checks 
    //whether the string is palindrome or not
    static boolean checkPalindrome(String str, int s, int e) 
    { 
        if (s == e)    // If there is only one character 
            return true;  
        // If first and last characters do not match 
        if ((str.charAt(s)) != (str.charAt(e))) 
            return false;   
        // If there are multiple characters, check if 
        // middle substring is also palindrome or not. 
        if (s < e + 1) 
            return checkPalindrome(str, s + 1, e - 1);   
        return true; 
    }   
    static boolean isPalindrome(String str) 
    { 
        int n = str.length();   
    // If string is empty,then it is palindrome 
        if (n == 0) 
            return true;   
        return checkPalindrome(str, 0, n - 1); 
    }   
    // Driver Code 
    public static void main(String args[]) 
    { 
        //Take input from the user
        Scanner sc = new Scanner(System.in);
        System.out.println("Enter the String :");
        String str = sc.nextLine();   //Input the string
        //Check whether palindrome or not
        if (isPalindrome(str)) 
            System.out.println(str+" is palindrome"); 
        else
            System.out.println(str+ " is not a palindrome"); 
    }   
}


Entrez la chaîne :wow
wow est palindrome

Programme 2 :Vérifier la chaîne Palindrome à l'aide de la récursivité

Dans ce programme, nous apprendrons comment vérifier si une chaîne est un palindrome ou non en utilisant la récursivité. Ici, une fois la chaîne saisie par l'utilisateur, nous appellerons une fonction récursive pour vérifier s'il s'agit d'un palindrome ou non en comparant le premier et le dernier caractère de la sous-chaîne.

Algorithme

  1. Commencer
  2. Déclarez une variable de chaîne.
  3. Demandez à l'utilisateur d'initialiser la chaîne.
  4. Appelez une fonction récursive pour vérifier si la chaîne est palindrome ou non.
  5. Si une chaîne est vide ou si elle se compose d'un seul caractère, alors c'est un palindrome.
  6. S'il y a plusieurs caractères, le premier et le dernier caractère de la chaîne sont vérifiés.
  7. Si les premier et dernier caractères de la chaîne sont identiques, procédez de la même manière pour la sous-chaîne en supprimant le premier et le dernier caractère.
  8. Poursuivre le processus jusqu'à ce que la condition échoue.
  9. Afficher le résultat.
  10. Arrêtez.

Vous trouverez ci-dessous le code correspondant en langage Java.

/*Java Program to Check whether a String is a Palindrome or not using Recursive Function*/
import java.util.Scanner;
public class Main
{
    //Recursive function that checks 
    //whether the string is palindrome or not
    static boolean isPalindrome(String str) 
    { 
        //If string has 0 or 1 character
        if(str.length() == 0 || str.length() == 1)
            return true; 
        //If string has multiple characters
        //Check whether first and last characters are same or not
        if(str.charAt(0) == str.charAt(str.length()-1))
            return isPalindrome(str.substring(1, str.length()-1));
        return false;
    }   
    // Driver Code 
    public static void main(String args[]) 
    { 
        //Take input from the user
        Scanner sc = new Scanner(System.in);
        System.out.println("Enter the String :");
        String str = sc.nextLine();   //Input the string
        //Check whether palindrome or not
        if (isPalindrome(str)) 
            System.out.println(str+" is palindrome"); 
        else
            System.out.println(str+ " is not a palindrome"); 
    }     
}


Entrez la chaîne :bonjour
bonjour n'est pas un palindrome


Balise Java