Programa de Python para verificar si dos oraciones se pueden hacer iguales reorganizando las palabras

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:

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() :

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

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

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

Deja una respuesta

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