Imprimir la palabra palíndromo más larga en una oración

Dada una string str , la tarea es imprimir la palabra palíndromo más larga presente en la string str .
Ejemplos: 

Entrada: Madam Arora enseña Malayalam 
Salida: Malayalam 
Explicación: La string contiene tres palabras palíndromo (es decir, Madam, Arora, Malayalam) pero la longitud de Malayalam es mayor que las otras dos.
Entrada: Bienvenido a GeeksforGeeks 
Salida: No Palindrome Word 
Explicación: La string no contiene ninguna palabra palindrome, por lo que la salida es No Palindrome Word. 

Acercarse: 

  • La función longPalin() encuentra la palabra palíndromo más larga extrayendo cada palabra de la string y pasándola a la función checkPalin(). Se agrega un espacio adicional en la string original para extraer la última palabra.
  • 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.

C++

/* C++ program to print longest palindrome
word in a sentence and its length*/
#include <iostream>
#include <algorithm>
#include <string>
 
using namespace std;
 
// Function to check if a
// word is palindrome
bool checkPalin(string word)
{
    int n = word.length();
 
    // making the check case
    // case insensitive
    // word = word.toLowerCase();
    transform(word.begin(), word.end(),
              word.begin(), ::tolower);
 
    // loop to check palindrome
    for (int i = 0; i < n; i++, n--)
        if (word[i] != word[n - 1])
            return false;
 
    return true;
}
 
// Function to find longest
// palindrome word
string longestPalin(string str)
{
     
    // to check last word for palindrome
    str = str + " ";
 
    // to store each word
    string longestword = "", word = "";
 
    int length, length1 = 0;
    for (int i = 0; i < str.length(); i++)
    {
        char ch = str[i];
 
        // extracting each word
        if (ch != ' ')
            word = word + ch;
        else {
            length = word.length();
            if (checkPalin(word) &&
                       length > length1)
            {
                length1 = length;
                longestword = word;
            }
 
            word = "";
        }
    }
 
    return longestword;
}
 
// Driver code
int main()
{
    string s = "My name is ava and i love"
                         " Geeksforgeeks";
 
    if (longestPalin(s) == "")
        cout<<"No Palindrome"<<" Word";
    else
        cout<<longestPalin(s);
    return 0;
}
 
// This code is contributed by Manish
// Shaw (manishshaw1)

Java

/*Java program to print longest palindrome
word in a sentence and its length*/
 
public class GFG {
 
    // Function to check if a
    // word is palindrome
    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;
    }
 
    // Function to find longest
    // palindrome word
    static String longestPalin(String str)
    {
        // to check last word for palindrome
        str = str + " ";
 
        // to store each word
        String longestword = "", word = "";
 
        int length, length1 = 0;
        for (int i = 0; i < str.length(); i++)
        {
            char ch = str.charAt(i);
 
            // extracting each word
            if (ch != ' ')
                word = word + ch;
            else {
                length = word.length();
                if (checkPalin(word) &&
                             length > length1)
                {
                    length1 = length;
                    longestword = word;
                }
 
                word = "";
            }
        }
 
        return longestword;
    }
 
    // Driver code
    public static void main(String args[])
    {
        String s = new String("My name is ava "
                + "and i love Geeksforgeeks");
 
        if (longestPalin(s) == "")
            System.out.println("No Palindrome"
                            + " Word");
        else
            System.out.println(longestPalin(s));
    }
}

Python3

# Python 3 program to print longest palindrome
# word in a sentence and its length
 
# Function to check if a word is palindrome
def checkPalin(word):
 
    n = len(word)
 
    # making the check case
    # case insensitive
    word = word.lower()
 
    # loop to check palindrome
    for i in range( n):
        if (word[i] != word[n - 1]):
            return False
        n -= 1
 
    return True
 
# Function to find longest
# palindrome word
def longestPalin(str):
     
    # to check last word for palindrome
    str = str + " "
 
    # to store each word
    longestword = ""
    word = ""
 
    length1 = 0
    for i in range(len(str)):
        ch = str[i]
 
        # extracting each word
        if (ch != ' '):
            word = word + ch
        else :
            length = len(word)
            if (checkPalin(word) and
                length > length1):
                length1 = length
                longestword = word
 
            word = ""
 
    return longestword
 
# Driver code
if __name__ == "__main__":
     
    s = "My name is ava and i love Geeksforgeeks"
 
    if (longestPalin(s) == ""):
        print("No Palindrome Word")
    else:
        print(longestPalin(s))
 
# This code is contributed by ita_c

C#

/* C# program to print longest palindrome
word in a sentence and its length*/
using System;
class GFG
{
    // Function to check if a
    // word is palindrome
    static bool checkPalin(string word)
    {
        int n = word.Length;
     
        // making the check case
        // case insensitive
        word = word.ToLower();
     
        // loop to check palindrome
        for (int i = 0; i < n; i++, n--)
            if (word[i] != word[n - 1])
                return false;
     
        return true;
    }
     
    // Function to find longest
    // palindrome word
    static string longestPalin(string str)
    {
         
        // to check last word for palindrome
        str = str + " ";
     
        // to store each word
        string longestword = "", word = "";
     
        int length, length1 = 0;
        for (int i = 0; i < str.Length; i++)
        {
            char ch = str[i];
     
            // extracting each word
            if (ch != ' ')
                word = word + ch;
            else {
                length = word.Length;
                if (checkPalin(word) &&
                        length > length1)
                {
                    length1 = length;
                    longestword = word;
                }
     
                word = "";
            }
        }
     
        return longestword;
    }
     
    // Driver code
    public static void Main()
    {
        string s = "My name is ava and i"
           + " love Geeksforgeeks";
     
        if (longestPalin(s) == "")
            Console.Write("No Palindrome Word");
        else
            Console.Write(longestPalin(s));
    }
}
 
// This code is contributed by Manish
// Shaw (manishshaw1)

Javascript

<script>
/*Javascript program to print longest palindrome
word in a sentence and its length*/
     
    // Function to check if a
    // word is palindrome
    function checkPalin(word)
    {
        let n = word.length;
  
        // making the check case
        // case insensitive
        word = word.toLowerCase();
  
        // loop to check palindrome
        for (let i = 0; i < n; i++, n--)
            if (word[i] !=
                       word[n-1])
                return false;
  
        return true;
    }
     
    // Function to find longest
    // palindrome word
    function longestPalin(str)
    {
        // to check last word for palindrome
        str = str + " ";
  
        // to store each word
        let longestword = "", word = "";
  
        let length, length1 = 0;
        for (let i = 0; i < str.length; i++)
        {
            let ch = str[i];
  
            // extracting each word
            if (ch != ' ')
                word = word + ch;
            else {
                length = word.length;
                if (checkPalin(word) &&
                             length > length1)
                {
                    length1 = length;
                    longestword = word;
                }
  
                word = "";
            }
        }
  
        return longestword;
    }
     
    // Driver code
    let s="My name is ava "
                + "and i love Geeksforgeeks";
    if (longestPalin(s) == "")
        document.write("No Palindrome"
                            + " Word");
    else
        document.write(longestPalin(s));
                
    // This code is contributed by rag2127
</script>
Producción: 

ava

 

Método #2: Usando el método sorted() en Python:

  • La idea es dividir las palabras de la string en una lista.
  • Recorra la lista y agregue todas las palabras palindrómicas a la nueva lista
  • Ordene la nueva lista en orden creciente de longitud de palabras usando el método sorted().
  • Finalmente, imprima la última string presente en la lista.

A continuación se muestra la implementación del enfoque anterior:

Python3

# Python3 program for the above approach
def ispalindrome(string):
    if(string == string[::-1]):
        return True
    else:
        return False
 
def largestPalin(s):
   
    # Taking new list
    newlist = []
     
    # Traverse the list
    for i in s:
        if(ispalindrome(i)):
            newlist.append(i)
             
    # Using sorted() method
    s = sorted(newlist, key=len)
 
    # Print last word
    print(s[len(s)-1])
 
 
# Driver Code
if __name__ == "__main__":
 
    # Given string
    s = "My name is ava and i love Geeksforgeeks"
 
    # Convert string to list
    l = list(s.split(" "))
 
    largestPalin(l)
     
# This code is contributed by vikkycirus

Javascript

<script>
 
// JavaScript program for the above approach
function ispalindrome(string){
    let temp = string
    temp = temp.split('').reverse().join('')
    if(string == temp)
        return true
    else
        return false
}
 
function largestPalin(s){
 
    // Taking new list
    let newlist = []
     
    // Traverse the list
    for(let i of s){
        if(ispalindrome(i))
            newlist.push(i)
    }
             
    // Using sorted() method
    newlist.sort((a,b)=>a.length - b.length)
    s = newlist
 
    // Print last word
    document.write(s[s.length-1],"</br>")
}
 
 
// Driver Code
 
// Given string
let s = "My name is ava and i love Geeksforgeeks"
 
// Convert string to list
let l = s.split(" ")
 
largestPalin(l)
     
// This code is contributed by shinjanpatra
 
</script>

Producción:

ava

Publicación traducida automáticamente

Artículo escrito por AnmolAgarwal 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 *