Dados dos anillos S1 y S2 que representan dos oraciones, la tarea es verificar si dos oraciones se pueden hacer iguales reorganizando las palabras de cualquiera de las strings.
Ejemplos:
Entrada: S1 = «seleccione una categoría», S2 = «categoría a, seleccione»
Salida: SíEntrada: S1 = «hola mundo, este es el lenguaje python», S2 = «el lenguaje python es este mundo moderno» Salida: No Explicación: La palabra «hola» no existe en la segunda string.
Acérquese usando las funciones integradas sort() y split() :
- Almacene las palabras de las strings S1 y S2 en listas separadas, digamos list1[] y list2[], respectivamente.
- Ordene ambas listas en orden ascendente.
- Si se encuentra que ambas listas son iguales , imprima «Sí». De lo contrario, escriba “No” .
Python3
# Python implementation # of the above approach # Function to check if two sentences # can be made same by rearranging words def ReArrangeStrings(string1, string2): # Stores the words of the # sentences in separate lists list1 = list(string1.split()) list2 = list(string2.split()) # Sort both the strings list1.sort() list2.sort() # If two lists are equal if(list1 == list2): return True else: return False # Driver Code # Input S1 = "please select a category" S2 = "category please a select" # Function call to check if two sentences # can be made same by rearranging words if(ReArrangeStrings(S1, S2)): print("Yes") else: print("No")
Yes
Complejidad de tiempo: O(N* M* log(N)), donde M es la longitud de las strings más largas.
Espacio Auxiliar: O(N)
Enfoque utilizando las funciones integradas Counter() y split():
- Almacene las palabras de las strings S1 y S2 en listas separadas, digamos list1[] y list2[], respectivamente.
- Cuente las palabras presentes en las strings S1 y S2 usando la función Contador() y guárdelas en variables separadas, digamos contador1 y contador2 respectivamente.
- Compruebe si counter1 es igual a counter2 o no. Si es cierto, escriba “Sí” . De lo contrario, escriba “No” .
Python3
# Python implementation # of the above approach # Import counter function # from collections from collections import Counter # Function to check if two sentences # can be made same by rearranging words def ReArrange(S1, S2): # Store the words of the # strings in separate lists list1 = list(S1.split()) list2 = list(S2.split()) listcounter1 = Counter(list1) listcounter2 = Counter(list2) # If counter of both the # sentences are same if(listcounter1 == listcounter2): return True else: return False # Driver Code # Input S1 = "please select a category" S2 = "category please a select" # Function call to check if two # sentences can be made same # by rearranging words if(ReArrange(S1, S2)): print("Yes") else: print("No")
Yes
: O(N)
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