Pregunta:
Dadas dos strings s1 y s2, verifique si ambas strings son anagramas entre sí.
Ejemplos:
Input : s1 = "listen" s2 = "silent" Output : The strings are anagrams. Input : s1 = "dad" s2 = "bad" Output : The strings aren't anagrams.
Solución:
Método n. ° 1: usar la función sorted()
Python proporciona una función incorporada sorted() que no modifica la string original, pero devuelve una string ordenada.
A continuación se muestra la implementación de Python del enfoque anterior:
Python
# function to check if two strings are # anagram or not def check(s1, s2): # the sorted strings are checked if(sorted(s1)== sorted(s2)): print("The strings are anagrams.") else: print("The strings aren't anagrams.") # driver code s1 ="listen" s2 ="silent" check(s1, s2)
Producción
The strings are anagrams.
Complejidad de tiempo: O (nlogn)
Espacio Auxiliar: O(1)
Método #2: Usando la función Counter()
- Cuente todas las frecuencias de 1st string y 2 y use counter()
- Si son iguales, imprima el anagrama.
Python3
# Python3 program for the above approach from collections import Counter # function to check if two strings are # anagram or not def check(s1, s2): # implementing counter function if(Counter(s1) == Counter(s2)): print("The strings are anagrams.") else: print("The strings aren't anagrams.") # driver code s1 = "listen" s2 = "silent" check(s1, s2)
Producción
The strings are anagrams.
Complejidad de tiempo: O(n)
Espacio Auxiliar: O(1)
Método n.º 3: uso de métodos incorporados de lista y clasificación()
Tomando 2 entradas de usuario y agregando a una lista y luego ordenando los elementos en una lista y verifica si son iguales, luego imprime el anagrama; de lo contrario, no son anagramas
Python3
## Example 1 for "The strings are anagrams." #Declare Inputs inp1 = "listen" inp2 = "silent" #Sort Elements x = [inp1[i] for i in range(0,len(inp1))] x.sort() y = [inp2[i] for i in range(0,len(inp2))] y.sort() # the sorted strings are checked if (x == y):print("The strings are anagrams.") else: print("The strings aren't anagrams.") ## Example 2 for "The strings aren't anagrams." #Declare Inputs inp1 = "listen" inp2 = "silenti" #Sort Elements x = [inp1[i] for i in range(0,len(inp1))] x.sort() y = [inp2[i] for i in range(0,len(inp2))] y.sort() # the sorted strings are checked if (x == y):print("The strings are anagrams.") else: print("The strings aren't anagrams.")
Producción
The strings are anagrams. The strings aren't anagrams.
Complejidad de tiempo: O (nlogn)
Espacio Auxiliar: O(n)