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.

Convertir una Representación de Cadena de Código en código

Quiero construir algo similar a LeetCode que esté un poco más adaptado al tipo de codificación para el que solo quiero ejercitarme.

Estuve echando un vistazo a cómo lo hace LeetCode y parece que es una solicitud POST donde el código escrito se convierte en una cadena en el cuerpo.

Por ejemplo: https://leetcode.com/problems/two-sum/

Tendría esta cadena en la carga útil:

"class Solution:\n    def twoSum(self, nums: List[int], target: int) -> List[int]:\n        seen = {}\n        \n        for i in range(len(nums)):\n            complement = target - nums[i]\n            if complement in seen:\n                return [seen[complement], i]\n            else:\n                seen[nums[i]] = i\n                "

Esta es la solución codificada en Python:

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        seen = {}
        for i in range(len(nums)):
            complement = target - nums[i]
            if complement in seen:
                return [seen[complement], i]
            else:
                seen[nums[i]] = i

Mi pregunta es:
Si tuviera una llamada de API que me envíe esa representación en cadena del código en la solicitud, ¿cómo puedo convertirlo en… código y probarlo?

Puedo suponer que el backend también está en Python. Intenté buscar esto, pero no encontré nada.

Como siempre, ¡gracias!

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para convertir la representación en formato de cadena del código en código Python real, puedes utilizar la función exec(). Esta función toma como argumento una cadena y la ejecuta como si fuera un bloque de código Python.

    Aquí tienes un ejemplo de cómo puedes utilizar exec() para compilar y ejecutar un bloque de código Python a partir de una cadena:

    code_string = "print('¡Hola, mundo!')"
    exec(code_string)
    

    Esto mostrará ¡Hola, mundo! en la consola.

    Para probar el código con una entrada específica, primero puedes analizar los datos de entrada a partir de una cadena JSON y convertirlos en un objeto de Python (utilizando el módulo json), y luego pasarlo a la función utilizando la función exec(). Aquí tienes un ejemplo:

    import json
    
    code_string = # obtener la cadena de código desde la llamada a la API
    
    input_data = "[1, 2, 3, 4]"
    parsed_input = json.loads(input_data)
    
    # compilar y ejecutar el código
    exec(code_string)
    result = Solution().twoSum(parsed_input, 5)
    
    print(result)
    

    Ten en cuenta que en este ejemplo asumimos que la función twoSum() está definida en la cadena de código, y que toma como argumentos una lista de enteros y un valor entero objetivo. Es posible que debas modificar este código para adaptarlo a tu caso de uso específico.

Comments are closed.