Поиск минимального окна, содержащего все символы из строки-шаблона

C# Сложный strings

Задача «Поиск минимального окна, содержащего все символы из строки-шаблона»

Даны две строки: s и t. Необходимо найти минимальную подстроку (окно) в s, которая содержит все символы из t (включая повторения). Если такого окна не существует, вывести пустую строку. Гарантируется, что строки состоят из строчных латинских букв. Длины строк: 1 ≤ |s|, |t| ≤ 10^5.

Формат ввода

На первой строке — строка s. На второй строке — строка t.

Формат вывода

Одна строка — искомая минимальная подстрока, или пустая строка, если решения нет.

Примеры

Пример 1

ВВОД
ADOBECODEBANC ABC
ВЫВОД
BANC

Пример 2

ВВОД
a b
ВЫВОД
main.cs