Python: Find smallest window that contains all characters of a given string
Python String: Exercise-75 with Solution
Smallest window with all characters.
Write a Python program to find the smallest window that contains all characters in a given string.
Visual Presentation:
Sample Solution:
Python Code:
from collections import defaultdict
def find_sub_string(str):
str_len = len(str)
# Count all distinct characters.
dist_count_char = len(set([x for x in str]))
ctr, start_pos, start_pos_index, min_len = 0, 0, -1, 9999999999
curr_count = defaultdict(lambda: 0)
for i in range(str_len):
curr_count[str[i]] += 1
if curr_count[str[i]] == 1:
ctr += 1
if ctr == dist_count_char:
while curr_count[str[start_pos]] > 1:
if curr_count[str[start_pos]] > 1:
curr_count[str[start_pos]] -= 1
start_pos += 1
len_window = i - start_pos + 1
if min_len > len_window:
min_len = len_window
start_pos_index = start_pos
return str[start_pos_index: start_pos_index + min_len]
str1 = "asdaewsqgtwwsa"
print("Original Strings:\n",str1)
print("\nSmallest window that contains all characters of the said string:")
print(find_sub_string(str1))
Sample Output:
Original Strings: asdaewsqgtwwsa Smallest window that contains all characters of the said string: daewsqgt
Flowchart:
Previous: Write a Python program to find the minimum window in a given string which will contain all the characters of another given string.
Next: Write a Python program to count number of substrings from a given string of lowercase alphabets with exactly k distinct (given) characters.
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.
It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.
https://w3resource.com/python-exercises/string/python-data-type-string-exercise-75.php
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics