Encuentra la última string Palindrome en la array dada

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>
Producción: 

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

Deja una respuesta

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