es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para codificar un resumen del número de átomos en una fórmula molecular de cadena utilizando Python, podemos seguir estos pasos:

    1. Inicialice un diccionario para almacenar el recuento de cada átomo.
    2. Recorra la cadena, un carácter a la vez.
    3. Si el carácter actual es una letra (C, H, N, O o S), agréguelo a una cadena temporal.
    4. Si el carácter actual es un número, agréguelo a la cadena temporal también.
    5. Si el carácter actual es una letra y no hay un número siguiente, asuma que el recuento es 1 y agréguelo a la cadena temporal.
    6. Cuando se ha encontrado un elemento completo (letra + conteo), actualice el recuento en el diccionario y restablezca la cadena temporal.
    7. Después de recorrer toda la cadena, cree una nueva cadena concatenando los símbolos y recuentos de elementos en el diccionario.

    Aquí hay un ejemplo de código que implementa este algoritmo:

    def contar_atomos(formula):
        cuentas = {'C': 0, 'H': 0, 'N': 0, 'O': 0, 'S': 0}
        temp = ""
        for char in formula:
            if char.isalpha():
                temp += char
            elif char.isdigit():
                temp += char
            if char.isalpha() and not temp[-1].isdigit():
                temp += "1"
            if len(temp) > 1 and (temp[-1].isalpha() or formula.index(char) == len(formula) - 1):
                symbol, count = temp[:-1], int(temp[-1])
                cuentas[symbol] += count
                temp = ""
        resultado = ""
        for symbol in cuentas:
            if cuentas[symbol] > 0:
                resultado += symbol + str(cuentas[symbol])
        return resultado
    

    Probar la función con la entrada proporcionada “C3H7NO2C3H7NO2S” debería producir la salida esperada “C6H14N2O4S”.

Comments are closed.