leetcode 76. Subcadena de ventana mínima

Leetcode 76 Minimum Window Substring

Descripción del problema

Dada una cadena S y una cadena T, encuentre la ventana mínima en S que contendrá todos los caracteres en T en complejidad O (n).
Ejemplo:

Entrada: S = 'ADOBECODEBANC', T = 'ABC'
Salida: 'BANC'
Nota:



  • Si no existe tal ventana en S que cubra todos los caracteres en T, devuelve la cadena vacía “”.
  • Si existe dicha ventana, se le garantiza que siempre habrá una única ventana mínima en S.

análisis del problema

Este problema es una cadena de procesamiento de subcadenas, se puede resolver una ventana deslizante. Para la cadena sy la cadena t, queremos encontrar la cadena más pequeña de caracteres incluida t en s. La ventana contiene los dos punteros izquierdo y derecho, por lo que necesitamos iterar s cada carácter, ya sea que mire o no en la cadena t, un paso aquí para ver si la cadena de caracteres t es crítica, podemos usar el mapa para resolver, Estadísticas t aparece el número de cada carácter. Si el recorrido de la cadena de caracteres t correspondiente mapeo el mapa de un valor de -1, -1 si el cambio también es mayor que 0 indica que los caracteres en la cadena t, y usando un contador cnt ++, t calculado ya está contenido en la ventana personaje. Si cnt == t.size (), entonces la ventana está completamente contenida en el carácter t. Actualiza el tamaño de la ventana. En este punto para encontrar una ventana más pequeña, tendremos el puntero izquierdo hacia la derecha, para estrechar la ventana. Operaciones específicas de carácter denominadas valor de mapeo left ++, si es mayor que 0, indica que el carácter en t, el CNT-. Es igual a 0 si el carácter se deja dentro del significado de t no se describe.



Código

|_+_|