[Leetcode] 0271. Codificar y decodificar cadenas

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 de 256 caracteres ASCII válidos.

 

Hacer un seguimiento: ¿Podrías escribir un algoritmo generalizado que funcione con cualquier conjunto posible de caracteres?

Tabla de contenido

Pitó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"))
				
			
es_ESEspañol