Explore diversas soluciones LeetCode en Python, C++, JavaScript, SQL y TypeScript. Ideal para preparación de entrevistas, aprendizaje y práctica de código en múltiples lenguajes de programación. Enlace de repositorio de Github
Diseñar un algoritmo para codificar una lista de cadenas a una cuerda. Luego, la cadena codificada se envía a través de la red y se decodifica nuevamente a la lista original de cadenas.
La máquina 1 (emisor) tiene la función:
cadena codificar(vector) strs) { // ... su código devuelve encoded_string; }
La máquina 2 (receptora) tiene la función:
vector decode(string s) { //... tu código devuelve strs; }
Entonces la Máquina 1 hace:
cadena codificada_string = encode(strs);
y la Máquina 2 hace:
vector strs2 = decodificar(cadena_codificada);
strs2
En la máquina 2 debería ser igual que cadenas
en la Máquina 1.
Implementar el codificar
y descodificar
métodos.
No se le permite resolver el problema utilizando ningún método de serialización (como evaluar
).
Ejemplo 1:
Aporte: entrada_ficticia = ["Hola","Mundo"] Producción: ["Hola Mundo"] Explicación: Máquina 1: Codificador de códec = nuevo Códec(); Cadena msg = codificador.encode(strs); Máquina 1 ---msg---> Máquina 2 Máquina 2: Descodificador de códec = new Codec(); String[] strs = decodificador.decode(msg);
Ejemplo 2:
Aporte: entrada ficticia = [""] Producción: [""]
Restricciones:
1 <= longitud de cadena <= 200
0 <= strs[i].length <= 200
cadenas[i]
contiene todos los caracteres posibles de256
caracteres ASCII válidos.
Hacer un seguimiento: ¿Podrías escribir un algoritmo generalizado que funcione con cualquier conjunto posible de caracteres?
Tabla de contenido
PalancaPitón
# complejidad de tiempo: O(n) # complejidad de espacio: O(n) from writing import List class Codec: def __init__(self) -> None: self.stringIndex = [] pass def encode(self, strs: List[str]) -> str: encodeString = "" for string in strs: currentIndex = len(string) self.stringIndex.append(currentIndex) encodeString += string print(self.stringIndex) return encodeString def decode(self, s: str) -> List[str]: decodeList = [] for i, item in enumerate(self.stringIndex): decodeList.append(s[:item]) s = s[item:] return decodeList # Su objeto Codec se instanciará y llamará como tal: codec = Codec() dummy_input = ["Hola", "Mundo"] print(codec.encode(entrada_ficticia)) print(codec.decode("HolaMundo"))