Dada una array de strings arr[] de tamaño N donde cada string consta solo de letras minúsculas en inglés. La tarea es devolver la última string palindrómica de la array.
Nota: Garantiza que siempre esté presente una cuerda palindrómica.
Ejemplos:
Entrada: arr[] = {“abc”, “car”, “ada”, “racecar”, “cool”}
Salida: “racecar”
Explicación: La última string palindrómica es “racecar”.
Tenga en cuenta que «ada» también es palindrómico, pero no es el Último.Entrada: arr[]= {“def”, “aba”}
Salida: “aba”
Enfoque: La solución se basa en el enfoque codicioso. Verifique cada string de una array desde la última si es palíndromo o no y también realice un seguimiento de la última string de palíndromo. Siga los pasos a continuación para resolver el problema:
- Inicialice una variable de string como una string vacía.
- Itere sobre el rango (N, 0] usando la variable i y realice las siguientes tareas:
- Si arr[i] es un palíndromo, establezca el valor de ans como arr[i] .
- Después de realizar los pasos anteriores, imprima el valor de ans como respuesta.
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ program for the above approach #include <bits/stdc++.h> using namespace std; // Function to check if given string // is Palindrome or not bool isPalindrome(string& s) { // Copy string s char into string a string a = s; reverse(s.begin(), s.end()); // Check if two string are equal or not return s == a; } // Function to return last Palindrome string string LastPalindrome(string arr[], int N) { // Loop to find the last palindrome string for (int i = N - 1; i >= 0; i--) { // Checking if given string is // palindrome or not if (isPalindrome(arr[i])) { // Return the answer return arr[i]; } } } // Driver Code int main() { string arr[] = { "abc", "car", "ada", "racecar", "cool" }; int N = sizeof(arr) / sizeof(arr[0]); // Print required answer cout << LastPalindrome(arr, N); return 0; }
Java
// Java program for the above approach class GFG { // Function to check if given string // is Palindrome or not static boolean isPalindrome(String s) { // Copy string s char into string a String a = s; a = new StringBuffer(a).reverse().toString(); // Check if two string are equal or not return s.equals(a); } // Function to return last Palindrome string static String LastPalindrome(String arr[], int N) { // Loop to find the last palindrome string for (int i = N - 1; i >= 0; i--) { // Checking if given string is // palindrome or not if (isPalindrome(arr[i])) { // Return the answer return arr[i]; } } return "Hi"; } // Driver Code public static void main(String args[]) { String arr[] = { "abc", "car", "ada", "racecar", "cool" }; int N = arr.length; // Print required answer System.out.println(LastPalindrome(arr, N)); } } // This code is contributed by saurabh_jaiswal.
Python3
# Python code for the above approach # Function to check if given string # is Palindrome or not def isPalindrome(s): # find the length of a string _len = len(s) for i in range(_len // 2): # check if first and last string are same if s[i] != s[_len - 1 - i]: return 0 return 1 # Function to return last Palindrome string def LastPalindrome(arr, N): # Loop to find the last palindrome string for i in range(N - 1, 0, -1): # Checking if given string is # palindrome or not if isPalindrome(arr[i]): # Return the answer return arr[i] # Driver Code arr = ["abc", "car", "ada", "racecar", "cool"] N = len(arr) # Print required answer print(LastPalindrome(arr, N)) # This code is contributed by gfgking
C#
// C# program for the above approach using System; class GFG { // Function to check if given string // is Palindrome or not static bool isPalindrome(string s) { // Copy string s char into string a char[] a = s.ToCharArray(); Array.Reverse(a); string p = new string(a); //a = new StringBuffer(a).reverse().toString(); // Check if two string are equal or not return s.Equals(p); } // Function to return last Palindrome string static string LastPalindrome(string[] arr, int N) { // Loop to find the last palindrome string for (int i = N - 1; i >= 0; i--) { // Checking if given string is // palindrome or not if (isPalindrome(arr[i])) { // Return the answer return arr[i]; } } return "Hi"; } // Driver Code public static void Main() { string []arr = { "abc", "car", "ada", "racecar", "cool" }; int N = arr.Length; // Print required answer Console.Write(LastPalindrome(arr, N)); } } // This code is contributed by ukasp.
Javascript
<script> // JavaScript code for the above approach // Function to check if given string // is Palindrome or not function isPalindrome(s) { // find the length of a string let len = s.length; for (let i = 0; i < len / 2; i++) { // check if first and last string are same if (s[i] !== s[len - 1 - i]) { return 0; } } return 1; } // Function to return last Palindrome string function LastPalindrome(arr, N) { // Loop to find the last palindrome string for (let i = N - 1; i >= 0; i--) { // Checking if given string is // palindrome or not if (isPalindrome(arr[i])) { // Return the answer return arr[i]; } } } // Driver Code let arr = ["abc", "car", "ada", "racecar", "cool"]; let N = arr.length; // Print required answer document.write(LastPalindrome(arr, N)); // This code is contributed by Potta Lokesh </script>
racecar
Complejidad de tiempo: O(N*W) donde W es el tamaño máximo de cualquier string en arr[]
Espacio auxiliar: O(1)
Publicación traducida automáticamente
Artículo escrito por sauarbhyadav y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA