Python: найти минимальное окно в данной строке, которое будет содержать все символы другой данной строки
Строка Python: упражнение-74 с решением
Напишите программу на Python, чтобы найти минимальное окно в данной строке, которое будет содержать все символы другой данной строки.
Пример 1
вход
str1 = "PRWSOERIUSFK"
str2 = "OSU"
Выход:
Минимальное окно "OERIUS"
Пример решения :
Код Python:
import collections
def min_window(str1, str2):
result_char, missing_char = collections.Counter(str2), len(str2)
i = p = q = 0
for j, c in enumerate(str1, 1):
missing_char -= result_char[c] > 0
result_char[c] -= 1
if not missing_char:
while i < q and result_char[str1[i]] < 0:
result_char[str1[i]] += 1
i += 1
if not q or j - i <= q - p:
p, q = i, j
return str1[p:q]
str1 ="PRWSOERIUSFK"
str2 ="OSU"
print("Original Strings:\n",str1,"\n",str2)
print("Minimum window:")
print(min_window(str1,str2))
Пример вывода:
Оригинальные строки: PRWSOERIUSFK ОГ Минимальное окно: OERIUS
Блок - схема:
Визуализируйте выполнение кода Python:
Следующий инструмент визуализирует, что компьютер делает шаг за шагом при выполнении указанной программы:
Редактор кода Python:
Есть другой способ решить это решение? Внесите свой код (и комментарии) через Disqus.
Предыдущий: Напишите программу на Python для подсчета заглавных, строчных букв, специальных символов и числовых значений в заданной строке.
Далее: Напишите программу на Python, чтобы найти наименьшее окно, которое содержит все символы данной строки.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования