```python # a = "abc", no vacío, único (m) # s = "dfaga[bfkac]ebf" => "aceb" (n) O(n) # s = "cfaafb" => "cfaafb" # s = "affb" => "" from collections import Counter def min_s(a: str, s: str) -> str: need = Counter(a) ```
Python
¿Tiene experiencia práctica en el uso de plataformas en la nube para el almacenamiento de datos?
¿Cómo manejar los casos límite de entrada de datos — números negativos, sumas demasiado grandes, valores incorrectos?
¿Cuál fue el tamaño máximo de datos que alguna vez almacenaste o procesaste en tu práctica?
¿Cómo implementar un mecanismo simple de bloqueo (lock) en memoria para protegerse contra accesos concurrentes sin usar dependencias externas?
¿Puedes explicar cómo funciona next()?
¿Puedes evaluar la complejidad de esta solución (en tiempo y memoria)? ¿Y por qué la complejidad no es O(n^2)?
¿Cómo se puede determinar el número de participantes en su equipo anterior?
¿Cuándo fue la última vez que resolviste problemas algorítmicos para practicar o proyectos?
¿Tiene experiencia en la creación y mantenimiento de sistemas basados en arquitecturas distribuidas?
# OneEditApart("gato", "perro") -> falso # OneEditApart("gato", "gatos") -> verdadero # OneEditApart("gato", "corte") -> verdadero # OneEditApart("gato", "castillo") -> verdadero # OneEditApart("gato", "a") -> verdadero # OneEditApart("gato", "actos") -> falso def OneEditApart(s1, s2) -> bool:
# Cajero automático que se carga con cassettes de billetes, con nuestra aplicación a bordo # debe poder dispensar billetes por una cantidad determinada o responder con rechazo # Al dispensar billetes, se descuentan del saldo del cajero automático. # Denominaciones permitidas: 50R, 100R, 500R, 1000R, 5000R. class ATM: pass # lugar para el código # Dispositivo del cajero automático: # - el dinero está ubicado en cassettes dentro del cajero, que son cargados por un recolector y recargados; # - cada cassette contiene billetes de su denominación; # - el cajero puede contar los billetes restantes en los cassettes, pero esta operación lleva tiempo - debe llamarse lo menos posible. # API para interactuar con el hardware del cajero. # La interfaz SDK puede ser modificada/ampliada según acuerdo de las partes, si es necesario class SDK(ABC): @abstractmethod def count_banknotes(self, banknote: int) -> int: pass @abstractmethod def move_banknote_to_dispenser(self, banknote: int, count: int) -> None: pass @abstractmethod def open_dispenser(self) -> None: pass
class ATM(SKD): def __init__(self, atm_api: "SKD"): self.atm_api: SKD = atm_api self.bills_count: dict[int:int] = {bill: self.atm_api.count_banknotes(bill) for bill in BILLS} def withdraw(self, amount: int) -> bool: bills_plan: dict[int: int] = {} remaining = amount for bill in BILLS: available = self.bills_count[bill] take = min(remaining // bill, available) if take > 0: bills_plan[bill] = take remaining -= take * bill if remaining != 0: return False bills_count_const = {50: 0, 100: 2, 500: 0, 1000: 0, ...}, expected = True @pytest.mark.parametrize( "bills_count_const,expected", [ ({5000: 0, 1000: 0, 500: 0, 100: 0, 50: 0}, False), ({5000: 100, 1000: 100, 500: 100, 100: 100, 50: 100}, True), ({5000: 1, 1000: 0, 500: 0, 100: 2, 50: 0}, True) ] ) def test_false(bills_count_const, expected): atm = ATM(FakeSDK()) atm.bills_count = bills_count_const amount = 1000 res = atm.withdraw(amount) assert res == expected
¿En qué países estás considerando opciones de trabajo o colaboración?
¿Tiene experiencia en soporte o desarrollo de sistemas distribuidos?
¿Tienes alguna pregunta para nosotros sobre el rol o la empresa?
¿En qué etapa se encuentra actualmente su búsqueda de trabajo o proyecto?
```python from collections import Counter def min_s(a: str, s: str) -> str: need = set(a) window = Counter() res = "" c = 0 left = 0 best_len = float('inf') for right, char in enumerate(s): if char in need and \ window[char] += 1 if window[char] == 1: c += 1 while c == len(need): if right - left + 1 < best_len: res = s[left:right + 1] best_len = right - left + 1 if s[left] in need: window[s[left]] -= 1 if window[s[left]] == 0: c -= 1 left += 1 return res ```
El entrevistador aclara si el candidato ve la condición del problema.
¿Cuál es su experiencia con Python y cuánto tiempo lo ha estado usando en sus proyectos?