Dada una string S que representa una oración, la tarea es reordenar todas las palabras palindrómicas presentes en la oración en orden ordenado .
Ejemplos:
Entrada: S = “Por favor refiérase a la señora para conocer el nivel”
Salida: Por favor nivele a la señora para conocer la referencia
Explicación: Aquí “referir”, “señora”, “nivel” son las palabras palindrómicas. Ordenarlos genera la secuencia {“nivel”, “señora”, “referir”}.Entrada: S = “referir a papá”
Salida: papá para referir
Enfoque: siga los pasos a continuación para resolver el problema:
- Iterar sobre los caracteres de la string .
- Divida las palabras en la oración por espacios usando split() y guárdelo como una lista , digamos lis.
- Almacene todas las palabras palindrómicas presentes en la oración S en una lista, digamos newlis[].
- Ordene la lista newlis[] usando la función sort() .
- Inicialice un puntero, digamos j = 0 .
- Recorra la lista lis y reemplace todas las palabras palindrómicas con newlis[j] e incremente j en 1 .
- Imprime la oración actualizada
A continuación se muestra la implementación del enfoque anterior:
Python3
# Python implementation of above program # Function to check if a # string is a palindrome or not def palindrome(string): if(string == string[::-1]): return True else: return False # Function to print the updated sentence def printSortedPalindromes(sentence): # Stores palindromic words newlist = [] # Stores the words split by spaces lis = list(sentence.split()) # Traversing the list for i in lis: # If current word is palindrome if(palindrome(i)): # Update newlist newlist.append(i) # Sort the words in newlist newlist.sort() # Pointer to iterate newlis j = 0 # Traverse the list for i in range(len(lis)): # If current word is palindrome if(palindrome(lis[i])): # Replacing word with # current word in newlist lis[i] = newlist[j] # Increment j by 1 j = j + 1 # Print the updated sentence for i in lis: print(i, end =" ") # Driver Code sentence = "please refer to the madam to know the level" printSortedPalindromes(sentence)
please level to the madam to know the refer
Complejidad de tiempo: O(N * logN)
Espacio auxiliar: O(N)
Publicación traducida automáticamente
Artículo escrito por vikkycirus y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA