Programa de Python para comprobar si una lista enlazada de strings forma un palíndromo

Dada una lista vinculada que maneja datos de strings, verifique si los datos son palíndromos o no. Ejemplos:

Input: a -> bc -> d -> dcb -> a -> NULL
Output: True
String "abcddcba" is palindrome.

Input: a -> bc -> d -> ba -> NULL
Output: False
String "abcdba" is not palindrome. 

La idea es muy simple. Construya una string a partir de una lista enlazada dada y verifique si la string construida es palíndromo o no.

Python

# Python program to check if given linked list
# of strings form a palindrome
 
# Node class
class Node:
 
    # Constructor to initialize the
    # node object
    def __init__(self, data):
        self.data = data
        self.next = None
 
class LinkedList:
 
    # Function to initialize head
    def __init__(self):
        self.head = None
 
    # A utility function to check if str
    # is palindrome or not
    def isPalindromeUtil(self, string):
        return (string == string[::-1])
 
    # Returns true if string formed by
    # linked list is palindrome
    def isPalindrome(self):
        node = self.head
 
        # Append all nodes to form a string
        temp = []
        while (node is not None):
            temp.append(node.data)
            node = node.next
        string = "".join(temp)
        return self.isPalindromeUtil(string)
 
    # Utility function to print the
    # linked LinkedList
    def printList(self):
        temp = self.head
        while (temp):
            print temp.data,
            temp = temp.next
 
# Driver code
llist = LinkedList()
llist.head = Node('a')
llist.head.next = Node('bc')
llist.head.next.next = Node("d")
llist.head.next.next.next = Node("dcb")
llist.head.next.next.next.next = Node("a")
print "true" if llist.isPalindrome() else "false"
# This code is contributed by Nikhil Kumar Singh(nickzuck_007)

Producción:

true

Complejidad de tiempo: O(n), donde n es el número de Nodes en la lista enlazada dada.
Espacio Auxiliar: O(m),donde m es la longitud de la string formada por la lista enlazada.

Consulte el artículo completo sobre Comprobar si una lista enlazada de strings forma un palíndromo para obtener más detalles.

Publicación traducida automáticamente

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