Programa Java para imprimir la palabra palíndromo más pequeña y más grande posible en una string dada

Una String Palindrome es una string cuya string invertida es igual a la string original. En este programa Java, vamos a ver el enfoque de imprimir la palabra palíndromo más pequeña y más grande en una string.

Dada una oración de palabras en forma de string, necesitamos imprimir la palabra palindrómica más pequeña y más larga de esas palabras.

Ejemplo:

Input: Wow madam is driving racecar.

Smallest Palindrome: Wow
Longest Palindrome: racecar
Explanation: The string contains three palindrome words (i.e., madam, Wow, racecar) 
         but the length of racecar is greatest and that of wow is smallest.


Input: "Nitin is a good guy"

Smallest Palindrome: a
Longest Palindrome: Nitin

Acercarse:

  • lengthPalindrome() encuentra la palabra palíndromo más larga y más pequeña extrayendo cada palabra de la string y pasándola a la función checkPalin() y luego actualizando la string de respuesta para la string más pequeña y más larga comparándola con la longitud de la string original si es un palíndromo.
     
  • La función checkPalin() comprueba si la palabra es palíndromo. Devuelve verdadero si la palabra es palíndromo; de lo contrario, devuelve falso. Se asegura de que las strings vacías no se cuenten como palíndromo, ya que el usuario puede ingresar más de un espacio entre o al principio de la string.

Ejemplo:

Java

// Java program to print the smallest and
// longest palindromic word out of the words of a sentence
  
public class Main {
  
    // Function to check if a
    // word is palindrome
    public static boolean checkPalin(String word)
    {
  
        int n = word.length();
  
        // making the check case
        // case insensitive
        word = word.toLowerCase();
  
        // loop to check palindrome
        for (int i = 0; i < n; i++, n--)
        {
            if (word.charAt(i) != word.charAt(n - 1))
                return false;
        }
  
        return true;
    }
  
    // Determine the smallest and biggest
    // palindromes in a given string
    public static void lengthPalindrome(int temp, String words[])
    {
        
        int count = 0;
        String smallest = "", longest = "";
        
        for (int i = 0; i < temp; i++) {
            
            if (checkPalin(words[i])) {
                count++;
                
                // Initialize smallest and longest
                // when first palindromic word
                // is found
                if (count == 1)
                    smallest = longest = words[i];
  
                // Compare smallest and longest with each
                // palindromic words
                else {
                    
                    // If length of smallest is greater
                    // than next palindromic word then
                    // Store that word in smallest
                    if (smallest.length()
                        > words[i].length())
                        smallest = words[i];
  
                    // If length of longest is less
                    // than next palindromic word then
                    // Store that word in longest
                    if (longest.length()
                        < words[i].length())
                        longest = words[i];
                }
            }
        }
  
        if (count == 0)
            
            System.out.println("No palindrome found");
        
        else {
            
            System.out.println("Smallest palindrome: "
                               + smallest);
            System.out.println("Biggest palindrome: "
                               + longest);
        }
    }
  
    public static void main(String[] args)
    {
        
        String string = "Wow Madam is driving racecar";
        String word = "";
        
        String[] words = new String[100];
        int temp = 0;
  
        // Add extra space after string
        // to get the last word
        string = string + " ";
  
        for (int i = 0; i < string.length(); i++) {
            
            // Split the string into words
            if (string.charAt(i) != ' ') {
                word = word + string.charAt(i);
            }
            
            else {
                
                // Add word to array words
                words[temp] = word;
                temp++;
                word = "";
            }
        }
        
        System.out.println("Inputted String : " + string);
        lengthPalindrome(temp, words);
    }
}
Producción

Inputted String : Wow Madam is driving racecar 
Smallest palindrome: Wow
Biggest palindrome: racecar

Publicación traducida automáticamente

Artículo escrito por rbbansal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *