Compruebe si ambas mitades de la string tienen el mismo conjunto de caracteres en Python

Dada una string de caracteres en minúscula solamente, la tarea es verificar si es posible dividir una string desde el medio, lo que dará dos mitades con los mismos caracteres y la misma frecuencia de cada carácter. Si la longitud de la string dada es impar, ignore el elemento central y verifique el resto. Ejemplos:

Input : abbaab
Output : NO
The two halves contain the same characters
but their frequencies do not match so they
are NOT CORRECT

Input : abccab
Output : YES

Este problema tiene una solución existente, consulte Verifique si ambas mitades de la string tienen el mismo enlace de conjunto de caracteres. Resolveremos este problema en Python rápidamente usando la comparación de diccionarios . El enfoque es muy simple:

  1. Divida la string en dos partes y convierta ambas partes en un diccionario usando el método Counter (iterador) , cada diccionario contiene su carácter como clave y la frecuencia como valor.
  2. Ahora compare estos dos diccionarios. En python podemos comparar dos usando el operador == , primero verifica que las claves de ambos diccionarios sean iguales o no, luego verifica los valores de cada clave. Si todo es igual, eso significa que dos diccionarios son idénticos.

Implementación:

Python3

# Function to Check if both halves of
# the string have same set of characters
from collections import Counter
 
def checkTwoHalves(input):
     
    length = len(input)
     
    # Break input string in two parts
    if (length % 2 != 0):
        first = input[0:length // 2]
        second = input[(length // 2) + 1:]
    else:
        first = input[0:length // 2]
        second = input[length // 2:]
 
    # Convert both halves into dictionary and compare
    if Counter(first) == Counter(second):
        print ('YES')
    else:
        print ('NO')
 
# Driver program
if __name__ == "__main__":
    input = 'abbaab'
    checkTwoHalves(input)
Producción

NO

Complejidad temporal: O(n)
Espacio auxiliar: O(n)

Publicación traducida automáticamente

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