Programa de Python para verificar si dos strings son anagramas – Part 1

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)

Publicación traducida automáticamente

Artículo escrito por Striver 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 *