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