Dado un entero X y una string str que consta de textos separados por espacios y números colocados alternativamente, la tarea es ordenar la string de modo que los textos y los números aparezcan en orden decreciente de números asociados después de eliminar todos los números menores que X . Si dos strings tienen los mismos valores, ordénelas en el orden lexicográfico de la string.
Ejemplos:
Entrada: X = 79, str = «Geek 78 para 99 Geeks 88 Gfg 86»
Salida:
para 99 Geeks 88 Gfg 86
Explicación:
«Eve 99» se elimina, ya que el número asociado a él es menor que X (= 79)
Ahora , la string reordenada basada en el orden decreciente de los números asociados es «Bob 99 Suzy 88 Alice 86».Entrada: X = 77, str = “Axc 78 Czt 60”
Salida: Axc 78
Planteamiento: La idea es utilizar la técnica Bubble Sort . Siga los pasos a continuación para resolver el problema:
- Divida la string en una lista , luego elimine las entradas que son menores que el valor dado, es decir , X.
- Ordene la lista según el número asociado con ella utilizando el método de clasificación de burbujas.
- Si los números no son iguales, ordene los números en orden decreciente y al mismo tiempo ordene los nombres.
- Si los números son iguales, ordénelos lexicográficamente.
- Intercambia las cuerdas y el número juntos para mantenerlos juntos.
A continuación se muestra la implementación del enfoque anterior:
Python3
# Python Program to implement # the above approach # Function to split the input # string into a list def tokenizer(Str): List = Str.split() return List # Function to sort the given list based # on values at odd indices of the list def SortListByOddIndices(List, x): l = len(List) # Function to remove the values # less than the given value x for i in range(l - 1, 0, -2): if int(List[i]) < x: del(List[i - 1: i + 1]) l = len(List) for i in range(1, l, 2): for j in range(1, l - i, 2): # Compares values at odd indices of # the list to sort the list if List[j] < List[j + 2] \ or (List[j - 1] > List[j + 1] \ and List[j] == List[j + 2]): List[j], List[j + 2] \ = List[j + 2], List[j] List[j - 1], List[j + 1] \ = List[j + 1], List[j - 1] return ' '.join(List) # Driver Code Str = "Axc 78 Czy 60" x = 77 # Function call List = tokenizer(Str) Str = SortListByOddIndices(List, x) print(Str)
Axc 78
Tiempo Complejidad: O(N 2 )
Espacio Auxiliar: O(N)
Publicación traducida automáticamente
Artículo escrito por prernaajitgupta y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA