Ventana mínima que contiene un texto

Tiempo límite 2 s
Memoria límite 256 MB
Casos de prueba 11
Dificultad Difícil Algoritmos
Mostrar (3) CadenasTablas hashVentana deslizante
Enviar solución

Puntos: 20

Tipos de problema
Lenguajes permitidos
C, C++, Java, Python, Rust

Dados dos textos \(s\) y \(t\), encuentra el tramo contiguo más corto de \(s\) que contiene todas las letras de \(t\), contando repeticiones (si \(t\) tiene dos a, el tramo necesita al menos dos a). Si hay varios del mismo largo, elige el que empieza más a la izquierda. Si no existe, imprime -.

Seguimiento: ¿puedes encontrar un algoritmo que corra en \(O(|s| + |t|)\)?

Entrada

La primera línea tiene \(s\) y la segunda \(t\) \((1 \le |s|, |t| \le 10^5)\), ambos de letras inglesas mayúsculas y minúsculas (que son distintas entre sí).

Salida

El tramo pedido, o - si no existe.

Ejemplo 1

Entrada

ADOBECODEBANC
ABC

Salida

BANC

Ejemplo 2

Entrada

a
aa

Salida

-

Ejemplo 3

Entrada

a
a

Salida

a

Basado en el problema 76 de LeetCode, Minimum Window Substring, adaptado a entrada y salida estándar; enunciado redactado para este juez. Es parte de la lista Grind 75 de Yangshun Tay.


Comentarios

No hay comentarios por el momento.